Documentation
¶
Index ¶
- func F取POST参数(r *http.Request, 参数名 string) string
- func F取查询参数(r *http.Request, 参数名 string) string
- func F响应HTML(w http.ResponseWriter, 状态码 int, html string)
- func F响应JSON(w http.ResponseWriter, 状态码 int, 数据 interface{})
- func F响应文本(w http.ResponseWriter, 状态码 int, 文本 string)
- func F解析JSON请求体(r *http.Request, 目标 interface{}) error
- type L_HTTP服务端
- func (s *L_HTTP服务端) J静态文件服务(URL前缀 string, 本地目录 string)
- func (s *L_HTTP服务端) Q取启动地址() string
- func (s *L_HTTP服务端) Q启动(端口 int) error
- func (s *L_HTTP服务端) Q启动带地址(地址 string) error
- func (s *L_HTTP服务端) S是否运行中() bool
- func (s *L_HTTP服务端) T停止() error
- func (s *L_HTTP服务端) T注册路由(方法 string, 路径 string, 处理函数 http.HandlerFunc)
- func (s *L_HTTP服务端) T注册通用路由(路径 string, 处理函数 http.HandlerFunc)
- func (s *L_HTTP服务端) Z中间件(中间件函数 func(http.HandlerFunc) http.HandlerFunc)
- func (s *L_HTTP服务端) Z中间件CORS()
- func (s *L_HTTP服务端) Z中间件日志()
- type L_TCP客户端
- type L_TCP服务端
- func (s *L_TCP服务端) F发送数据(客户端地址 string, 数据 []byte) error
- func (s *L_TCP服务端) F发送文本(客户端地址 string, 文本 string) error
- func (s *L_TCP服务端) G广播数据(数据 []byte)
- func (s *L_TCP服务端) G广播文本(文本 string)
- func (s *L_TCP服务端) Q取客户端列表() []string
- func (s *L_TCP服务端) Q取客户端数量() int
- func (s *L_TCP服务端) Q启动(端口 int) error
- func (s *L_TCP服务端) T停止()
- type L_WS客户端
- type L_WS服务端
- func (s *L_WS服务端) F发送字节(客户端ID string, 数据 []byte) error
- func (s *L_WS服务端) F发送文本(客户端ID string, 文本 string) error
- func (s *L_WS服务端) G广播字节(数据 []byte)
- func (s *L_WS服务端) G广播文本(文本 string)
- func (s *L_WS服务端) Q取客户端列表() []string
- func (s *L_WS服务端) Q取客户端数量() int
- func (s *L_WS服务端) Q启动(端口 int, 路径 string) error
- func (s *L_WS服务端) Q启动带地址(地址 string, 路径 string) error
- func (s *L_WS服务端) T停止()
- type L_临界许可
- type L_正则表达式
- type L_读写锁
- type L_队列
- type L_队列泛型
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func F取POST参数 ¶
F取POST参数 从 HTTP 请求中解析并获取 POST 表单参数值。
参数:
- r: *http.Request
- 参数名: POST 参数名称
返回:
- string: 参数值,解析失败或不存在则返回空字符串
func F取查询参数 ¶
F取查询参数 从 HTTP 请求中获取 URL 查询参数值。
参数:
- r: *http.Request
- 参数名: 查询参数名称
返回:
- string: 参数值,不存在则返回空字符串
func F响应HTML ¶
func F响应HTML(w http.ResponseWriter, 状态码 int, html string)
F响应HTML 便捷方法:向客户端写入 HTML 响应。
参数:
- w: http.ResponseWriter
- 状态码: HTTP 状态码
- html: HTML 内容
func F响应JSON ¶
func F响应JSON(w http.ResponseWriter, 状态码 int, 数据 interface{})
F响应JSON 便捷方法:向客户端写入 JSON 响应。 自动设置 Content-Type 为 application/json。
参数:
- w: http.ResponseWriter
- 状态码: HTTP 状态码(如 200)
- 数据: 要序列化为 JSON 的数据
func F响应文本 ¶
func F响应文本(w http.ResponseWriter, 状态码 int, 文本 string)
F响应文本 便捷方法:向客户端写入纯文本响应。
参数:
- w: http.ResponseWriter
- 状态码: HTTP 状态码
- 文本: 要返回的文本内容
func F解析JSON请求体 ¶
F解析JSON请求体 从 HTTP 请求体中解析 JSON 到目标对象。
参数:
- r: *http.Request
- 目标: 用于接收解析结果的对象指针
返回:
- error: 解析失败时返回错误
Types ¶
type L_HTTP服务端 ¶
type L_HTTP服务端 struct {
// contains filtered or unexported fields
}
L_HTTP服务端 HTTP 服务端,基于标准库 net/http 封装,支持路由注册、中间件、静态文件服务。 提供中文 API 风格的 HTTP 服务器构建方法。
使用示例:
s := &class.L_HTTP服务端{}
s.T注册路由("GET", "/hello", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World"))
})
s.Q启动(8080)
func (*L_HTTP服务端) J静态文件服务 ¶
J静态文件服务 注册静态文件服务,将指定目录映射到 URL 路径前缀。
参数:
- URL前缀: URL 路径前缀(如 "/static/")
- 本地目录: 本地文件目录路径(如 "./public")
func (*L_HTTP服务端) Q启动带地址 ¶
Q启动带地址 启动 HTTP 服务端,指定完整监听地址。
参数:
- 地址: 监听地址(如 ":8080" 或 "0.0.0.0:8080")
返回:
- error: 启动失败时返回错误
func (*L_HTTP服务端) T注册路由 ¶
func (s *L_HTTP服务端) T注册路由(方法 string, 路径 string, 处理函数 http.HandlerFunc)
T注册路由 注册 HTTP 路由处理函数。
参数:
- 方法: HTTP 方法(如 "GET", "POST", "PUT", "DELETE" 等)
- 路径: URL 路径(如 "/api/hello")
- 处理函数: 标准 http.HandlerFunc 处理函数
func (*L_HTTP服务端) T注册通用路由 ¶
func (s *L_HTTP服务端) T注册通用路由(路径 string, 处理函数 http.HandlerFunc)
T注册通用路由 注册不区分 HTTP 方法的通配路由。 所有 HTTP 方法匹配该路径时均触发处理函数。
参数:
- 路径: URL 路径(如 "/hello")
- 处理函数: 标准 http.HandlerFunc 处理函数
func (*L_HTTP服务端) Z中间件 ¶
func (s *L_HTTP服务端) Z中间件(中间件函数 func(http.HandlerFunc) http.HandlerFunc)
Z中间件 添加全局中间件函数。 中间件按添加顺序执行。
参数:
- 中间件函数: 接受 http.HandlerFunc 返回 http.HandlerFunc 的包装函数
type L_TCP客户端 ¶
type L_TCP客户端 struct {
S收到数据回调 func(数据 []byte)
D断开回调 func()
// contains filtered or unexported fields
}
L_TCP客户端 TCP 客户端,支持连接服务端、收发数据。 使用 bufio 以换行符作为消息分隔符。
使用示例:
c := &class.L_TCP客户端{}
c.S收到数据回调 = func(数据 []byte) { fmt.Println(string(数据)) }
c.L连接("127.0.0.1:8888")
c.F发送文本("hello")
type L_TCP服务端 ¶
type L_TCP服务端 struct {
S收到数据回调 func(客户端地址 string, 数据 []byte)
K客户端连接回调 func(客户端地址 string)
K客户端断开回调 func(客户端地址 string)
// contains filtered or unexported fields
}
L_TCP服务端 TCP 服务端,支持多客户端并发连接、消息收发和广播。 基于 net.ListenTCP 实现,每个客户端连接在独立 goroutine 中处理。
使用示例:
s := &class.L_TCP服务端{}
s.S收到数据回调 = func(客户端地址 string, 数据 []byte) {
fmt.Println("收到:", string(数据))
}
s.Q启动(8888)
func (*L_TCP服务端) F发送数据 ¶
F发送数据 向指定客户端发送数据(自动追加换行符作为分隔符)。
参数:
- 客户端地址: 客户端地址(如 "192.168.1.1:12345")
- 数据: 要发送的字节数据
返回:
- error: 发送失败时返回错误
type L_WS客户端 ¶
type L_WS客户端 struct {
S收到文本回调 func(文本 string)
S收到字节回调 func(数据 []byte)
D断开回调 func()
// contains filtered or unexported fields
}
L_WS客户端 WebSocket 客户端,支持连接服务端、收发文本和二进制消息。
使用示例:
c := &class.L_WS客户端{}
c.S收到文本回调 = func(文本 string) { fmt.Println(文本) }
c.L连接("ws://127.0.0.1:8080/ws")
c.F发送文本("hello")
func (*L_WS客户端) F发送JSON ¶
F发送JSON 向服务端发送 JSON 格式消息(自动序列化)。
参数:
- 数据: 要发送的数据(将自动 JSON 序列化)
返回:
- error: 发送失败时返回错误
type L_WS服务端 ¶
type L_WS服务端 struct {
S收到文本回调 func(客户端ID string, 文本 string)
S收到字节回调 func(客户端ID string, 数据 []byte)
K客户端连接回调 func(客户端ID string)
K客户端断开回调 func(客户端ID string)
// contains filtered or unexported fields
}
L_WS服务端 WebSocket 服务端,支持多客户端并发连接、文本/二进制消息收发和广播。 基于 gorilla/websocket 库实现,可同时处理文本和二进制消息。
使用示例:
s := &class.L_WS服务端{}
s.S收到文本回调 = func(客户端ID string, 文本 string) { fmt.Println("收到:", 文本) }
s.Q启动(8080, "/ws")
func (*L_WS服务端) F发送字节 ¶
F发送字节 向指定客户端发送二进制消息。
参数:
- 客户端ID: 客户端的远程地址标识
- 数据: 要发送的字节数据
返回:
- error: 发送失败时返回错误
func (*L_WS服务端) Q启动 ¶
Q启动 启动 WebSocket 服务端,监听指定端口和路径。 客户端连接 ws://host:port/path 即可建立 WebSocket 连接。
参数:
- 端口: 监听端口号(如 8080)
- 路径: WebSocket 路径(如 "/ws")
返回:
- error: 启动失败时返回错误
type L_临界许可 ¶
type L_临界许可 struct {
// contains filtered or unexported fields
}
L_临界许可 互斥锁封装,用于保护临界区代码。 基于 sync.Mutex 实现,确保同一时刻只有一个 goroutine 进入临界区。
使用示例:
lock := &L_临界许可{}
lock.J进入许可区()
// 临界区代码,同一时刻只有一个 goroutine 执行
lock.T退出许可区()
func (*L_临界许可) C尝试进入 ¶
C尝试进入 尝试获取互斥锁而不阻塞。 如果锁当前可用则获取并返回 true,否则立即返回 false。
返回:
- bool: true 表示成功获取锁,false 表示锁已被占用
type L_正则表达式 ¶
L_正则表达式 正则表达式封装类,提供正则匹配和子表达式提取功能。 创建时编译正则表达式并执行匹配,后续可通过方法获取匹配结果。
使用示例:
re, ok := New正则表达式类(`(\d+)-(\d+)`, "abc 123-456 def")
if ok {
count := re.Q取匹配数量()
text := re.Q取匹配文本(0)
sub := re.Q取子匹配文本(0, 1)
}
func New正则表达式类 ¶
New正则表达式类 创建并初始化正则表达式对象。 编译正则表达式文本,并在被搜索文本中执行匹配。
参数:
- 正则表达式文本: 正则表达式模式字符串
- 被搜索的文本: 要执行匹配的目标文本
返回:
- *L_正则表达式: 正则表达式对象
- bool: true 表示至少有一个匹配,false 表示无匹配
func (*L_正则表达式) E创建 ¶
E创建 编译正则表达式并执行匹配。 如果匹配成功,Count 和 SubmatchCount2 会被赋值。
参数:
- 正则表达式文本: 正则表达式模式字符串
- 被搜索的文本: 要执行匹配的目标文本
返回:
- bool: true 表示至少有一个匹配,false 表示无匹配
func (*L_正则表达式) Q取匹配文本 ¶
Q取匹配文本 获取指定索引的完整匹配文本。 索引 0 表示第一个匹配结果的完整文本。
参数:
- 匹配索引: 匹配结果的索引(从 0 开始)
返回:
- string: 完整匹配文本;索引越界时可能 panic
type L_读写锁 ¶
type L_读写锁 struct {
// contains filtered or unexported fields
}
L_读写锁 读写锁封装,基于 sync.RWMutex 实现。 读共享:多个 goroutine 可以同时获取读锁,适合读多写少的场景。 写独享:写锁会阻塞所有读锁和其他写锁,保证数据一致性。
使用示例:
lock := &L_读写锁{}
lock.K开始读()
// 读取共享数据...
lock.J结束读()
lock.K开始写()
// 修改共享数据...
lock.J结束写()
type L_队列 ¶
type L_队列 struct {
// contains filtered or unexported fields
}
L_队列 先入先出(FIFO)队列实现,线程安全。 基于 container/list 双向链表,使用互斥锁保证并发安全。 元素类型为 interface{},可存储任意类型的值。
使用示例:
q := &L_队列{}
q.Init()
q.J加入队列("hello")
val, ok := q.T弹出队列()
func (*L_队列) Q清空队列 ¶
func (q *L_队列) Q清空队列() interface{}
Q清空队列 清空队列中的所有元素。
返回:
- interface{}: 内部 list.Init() 的返回值
func (*L_队列) T弹出队列 ¶
T弹出队列 从队列头部弹出一个元素(先进先出)。
返回:
- interface{}: 弹出的元素值;队列为空时返回 nil
- bool: true 表示成功弹出,false 表示队列为空
type L_队列泛型 ¶
type L_队列泛型[T any] struct { // contains filtered or unexported fields }
L_队列泛型 线程安全的泛型队列实现。 基于 container/list 双向链表,使用互斥锁保证并发安全。 支持任意类型的元素,遵循先进先出(FIFO)原则。
使用示例:
q := &L_队列泛型[int]{}
q.Init()
q.J加入队列(42)
val, ok := q.T弹出队列()
func (*L_队列泛型[T]) Dump ¶
func (q *L_队列泛型[T]) Dump()
Dump 打印队列中所有元素的内容,用于调试。 从队首到队尾依次输出,格式为 "item: <value>"。