【发布时间】:2019-06-29 23:31:57
【问题描述】:
我正在编写一个拨打 websocket 并等待接收信息的客户端。我可以成功拨打 websocket,但我不知道如何使用“golang.org/x/net/websocket”包实现某种异步回调。这甚至可能吗,还是我应该使用 Gorilla 包?
【问题讨论】:
我正在编写一个拨打 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)
}
}()
【讨论】: