【问题标题】:writing a client over websocket in golang在 golang 中通过 websocket 编写客户端
【发布时间】:2019-06-29 23:31:57
【问题描述】:

我正在编写一个拨打 websocket 并等待接收信息的客户端。我可以成功拨打 websocket,但我不知道如何使用“golang.org/x/net/websocket”包实现某种异步回调。这甚至可能吗,还是我应该使用 Gorilla 包?

【问题讨论】:

    标签: go websocket


    【解决方案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)
        }
    }()
    

    【讨论】:

    • “golang.org/x/net/websocket”还不如大猩猩吗?
    • x/net 包没有实现完整的协议,包括消息分片等常用功能。使用 Gorilla 包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2018-04-23
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多