我正在编写一个客户端,它拨打一个websocket,等待接收信息。我可以成功地拨打websocket,但我不知道如何使用"golang.org/x/net/websocket"包实现某种异步回调。这可能吗,或者我应该使用Gorilla软件包吗?
使用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)
}
}()