首页 > 解决方案 > 在 socket.io 的上下文中,响应 101 是什么意思?

问题描述

我在我的应用程序中遇到了一个问题,我应该得到响应代码 200(而且我大部分时间都这样做),但在某些时候我得到响应代码 101。这在套接字的上下文中到底意味着什么。伊奥?我读到这意味着协议发生了切换,这可能不是我想要发生的事情。这是一个大问题,因为在日志显示“断开连接的用户”之后,我得到了返回的响应代码,它搞砸了我的应用程序。也许这只是糟糕的用户连接?我在想可能是因为传输策略从“轮询”变为“网络套接字”?如果这是问题,我该如何纠正?

我正在附加图像,但老实说,我什至不知道在代码方面该放什么,所以这是我的 socket.io 初始化:

const io = require('socket.io')(http);

function onConnection(socket){
  console.log("Connected a socket");
  socket.on('disconnect', function() {
    console.log("DISCONNECTED USER: " + socket.id);
  }
}

客户端在 Swift 中,看起来像:

var socket: SocketIOClient?

func establishConnection(_ completion: (() -> Void)? = nil) {
        let socketUrlString: String = "serverURL"
        self.manager = SocketManager(socketURL: URL(string: socketUrlString)!, config: [.log(false), .reconnects(true), .extraHeaders(["header": "customheader"])])
        self.socket = manager?.defaultSocket
        self.socket?.connect()
        appState.socketIsConnected = true
        self.socket?.once(clientEvent: .connect, callback: { (data, emitter) in
            print("\n\n\n connection done!! \n\n\n")
            if completion != nil{
                completion!()
            }
        })
}

https://i.stack.imgur.com/oDt48.png

标签: javascriptnode.jssocketswebsocketsocket.io

解决方案


推荐阅读