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数据, 传递给实际运行的函数, 并等待结果返回;
定义统一返回的结果对象;

之后再补充;

posted @   潜行1  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示