Go Websocket库推荐
gws常用的操作
json格式参考 home assiatant文档中的那个定义:
ha websocket文档
定义handler, 它是gws的websocket的回调方法集合定义的接口
// ClientEventHandler 是 Websocket事件回调的模板.
// 有 open, close, ping, pong(客户端其实没有ping操作, 所以就自然不存在pong的回调), message
type ClientEventHandler struct{}
func (b ClientEventHandler) OnOpen(socket *gws.Conn) {
}
func (b ClientEventHandler) OnClose(socket *gws.Conn, err error) {
fmt.Printf("%v关闭连接", socket.RemoteAddr())
}
func (b ClientEventHandler) OnPing(socket *gws.Conn, payload []byte) { _ = socket.WritePong(nil) }
func (b ClientEventHandler) OnPong(socket *gws.Conn, payload []byte) {}
func (b ClientEventHandler) OnMessage(socket *gws.Conn, message *gws.Message) {
}
建立客户端连接, 并设置超时时间:
client, response, err := gws.NewClient(ws.ClientEventHandler{}, &gws.ClientOption{HandshakeTimeout: 2 * time.Second})
msg到来的流程:
解析msg中的type字段, 并将data数据传递给对应的函数:
对应的函数解析data数据, 传递给实际运行的函数, 并等待结果返回;
定义统一返回的结果对象;
之后再补充;
分类:
Golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)