javascript - Socket.io 连接状态确认

标签 javascript node.js socket.io

我正在使用 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连接请求的响应?

我尝试了以下事件,但没有一个被解雇。

  1. socket.on("connect",()=>alert("已连接"));
  2. socket.on("断开连接",()=>alert("已断开连接"));
  3. 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/

相关文章:

javascript - 循环直到...与 Ramda

javascript - 上传新图片时清除缩略图?

javascript - 在vue js中点击更新两个分页组件

javascript - 如何从已编译的 Electron 应用程序中获取源文件?

javascript - 使用 browserify 捆绑依赖于外部库的 UMD 模块

mysql - 如何在 Sequelize 模型中动态选择数据库(或 "schema")?

node.js - 带有 socket.io 的 EC2

node.js - SES : Accessing email body inside lambda function

node.js - Express-Generator - 包括 socket.io (bin/www)

c - 如何确保套接字 I/O 的 NULL 终止字符串 C 编程