我正在使用 socket.io 构建单人/多人游戏应用程序。 客户端:
let socket = io(host,{autoConnect: false,forceNew: true});
每当用户按下多人游戏选项时,我就会开始连接到服务器
socket.connect();
if(socket.connected) console.log("Success")
else{
showToast(0,"Connection Issue","Failed to connect to server")
socket.disconnect();
}
问题是 socket.connected 不会等待 socket.connect() 的响应,并且始终评估为 false。 如何等待socket.io连接请求的响应?
我尝试了以下事件,但没有一个被解雇。
- socket.on("connect",()=>alert("已连接"));
- socket.on("断开连接",()=>alert("已断开连接"));
- socket.on("connect_error",()=>alert("连接错误"));
最佳答案
这里我使用了之前项目中的connect方法来获取连接事件。运行良好。
socket.on("connect",()=>alert("Connect"));
您还从socket.io官网验证了这个方法: https://socket.io/docs/v4/client-socket-instance/
在这种情况下,您还需要与服务器端交叉检查是否有任何连接。也许客户端和服务器之间的连接存在问题。
关于javascript - Socket.io 连接状态确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76161267/