使用swift连接到socket.io时卡在连接状态

使用swift连接到socket.io时卡在连接状态,swift,socket.io,Swift,Socket.io,我正在尝试将socket.io与swift 4连接。但当我尝试连接socket服务器时,正如他们的文档所述,我的socket.status会陷入连接状态。谁能帮帮我吗。这是我连接socket.io的代码。 是他们的测试套接字聊天服务器 let manager = SocketManager(socketURL: URL(string:"https://socket-io-chat.now.sh/")!, config: [.log(true), .compress]) func add(){

我正在尝试将socket.io与swift 4连接。但当我尝试连接socket服务器时,正如他们的文档所述,我的socket.status会陷入连接状态。谁能帮帮我吗。这是我连接socket.io的代码。 是他们的测试套接字聊天服务器

let manager = SocketManager(socketURL: URL(string:"https://socket-io-chat.now.sh/")!, config: [.log(true), .compress])

func add(){
    let socket = manager.defaultSocket

    socket.on(clientEvent: .connect) {data, ack in
        print("socket connected")
    }

    socket.on(clientEvent: .disconnect) { (data, ack) in
        print("disconnect")
    }

    socket.on(clientEvent: .error) { (data, ack) in
        print("error connect")
    }

    socket.connect()
    for index in 1...50  {
        print("\(socket.status) +\(index)")
    }
}
这就是我如何调用该类方法的

SocketIOManager().add()

创建并连接后,必须将
SocketManager
的实例存储在某个地方(或者在您的情况下,存储包含SocketManager的SocketIOManager)

例如,只需在
ViewConroller
中为
SocketIOManager
创建变量(或静态变量)


创建并连接后,必须将
SocketManager
的实例存储在某个地方(或者在您的情况下,存储包含SocketManager的SocketIOManager)

例如,只需在
ViewConroller
中为
SocketIOManager
创建变量(或静态变量)


我相信您错过了所有TLS协商回调,在协商安全参数之前,您的套接字无法完全连接。注意你的URL中的“https”,但它一直处于连接状态,即使我用我的本地主机服务器进行测试@ekscryptoI认为您缺少所有TLS协商回调,在协商安全参数之前,您的套接字无法完全连接。注意你的URL中的“https”,但它一直处于连接状态,即使我用我的本地主机服务器进行测试@ekscrypto
var socketIOManager = SocketIOManager()

override func viewDidLoad() {
   socketIOManager.add()
}


@IBAction func testButtonTap(_ sender: Any) {
    var status = socketIOManager.manager.defaultSocket.status
    print("\(status)")
}