在golang中通过websocket写一个客户端

时间:2016-08-07 18:56:56

标签: go websocket

我正在编写一个拨打websocket的客户端,并等待接收信息。我可以成功拨打websocket,但我无法弄清楚如何使用" golang.org/x/net/websocket"来实现某种异步回调。包。这是否可能,或者我应该使用Gorilla包吗?

1 个答案:

答案 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)
    }
}()