我正在编写一个拨打websocket的客户端,并等待接收信息。我可以成功拨打websocket,但我无法弄清楚如何使用" golang.org/x/net/websocket"来实现某种异步回调。包。这是否可能,或者我应该使用Gorilla包吗?
答案 0 :(得分:1)
使用for循环使用Gorilla包读取websocket:
for {
_, message, err := c.ReadMessage()
if err != nil {
log.Println("read:", err)
c.Close()
break
}
handleMessage(message)
}
在goroutine中运行循环以使其异步:
go func() {
for {
_, message, err := c.ReadMessage()
if err != nil {
log.Println("read:", err)
c.Close()
break
}
handleMessage(message)
}
}()