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数据, 传递给实际运行的函数, 并等待结果返回;
定义统一返回的结果对象;
之后再补充;
标签:Websocket,socket,推荐,ClientEventHandler,gws,Go,func,Conn From: https://www.cnblogs.com/runninginsilence/p/17966357