【问题标题】:how to deal with websocket disconnection issue, status code 1006 in /gofiber/websocket如何处理 websocket 断开连接问题,/gofiber/websocket 中的状态码 1006
【发布时间】:2022-03-10 03:17:23
【问题描述】:

我正在尝试创建聊天应用程序。即使建立了乒乓球,也会不断面对关闭状态为 1006 的 websocket 连接。如何处理断线?我们使用的包是github.com/gofiber/websocket/v2

【问题讨论】:

    标签: websocket go-fiber


    【解决方案1】:

    结帐ikisocket fiber wrapper 以获取此类示例。

    func (kws *Websocket) send(ctx context.Context) {
        for {
            select {
            case message := <-kws.queue:
                if !kws.hasConn() {
                    if message.retries <= MaxSendRetry {
                        // retry without blocking the sending thread
                        go func() {
                            time.Sleep(RetrySendTimeout)
                            message.retries = message.retries + 1
                            kws.queue <- message
                        }()
                    }
                    continue
                }
    
                kws.mu.RLock()
                err := kws.ws.WriteMessage(message.mType, message.data)
                kws.mu.RUnlock()
    
                if err != nil {
                    kws.disconnected(err)
                }
            case <-ctx.Done():
                return
            }
        }
    }
    
    

    【讨论】:

      猜你喜欢
      • 2019-07-18
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 1970-01-01
      相关资源
      最近更新 更多