使用iOS的ack SocketIO进行发射

Elh*_*oej 5 javascript ios socket.io swift

我正在尝试通过回调进行发射,但似乎服务器无法将回调函数识别为函数。我查阅了文档,据我所知代码应该可以正常工作。

这是我得到的错误: TypeError: callBack is not a function

这是客户端代码:

socket?.emitWithAck("connectUsername", username).timingOut(after: 2, callback: { (data) in
            
        print(data)
    })
Run Code Online (Sandbox Code Playgroud)

和服务器代码:    

socket.on("connectUsername", function(username, callBack)
    {
        //Do stuff with username here...

        var id = socket.id
        callBack(id);
     });
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

Sum*_*ena 5

正如@kiddosrails 提到的问题是超时 2 秒是更少的执行时间,您可以设置超时0,即不超时。希望这个回答能帮到你。

     socket.emitWithAck("connectUsername", username).timingOut(after: 0) {data in
      print(data)    
    }
Run Code Online (Sandbox Code Playgroud)


kid*_*ils 3

我没有在文档中看到回调作为参数timingOut。以下应该有效:

socket.emitWithAck("connectUsername", username).timingOut(after: 20) { data in 
  print(data)
}
Run Code Online (Sandbox Code Playgroud)

如果上述不起作用,请通过将其更改为以下内容来检查回调到底是什么:

socket.on("connectUsername", function(username, callBack)
    {
        //Do stuff with username here...

        var id = socket.id
        console.log(callBack.toString());
     });
Run Code Online (Sandbox Code Playgroud)