javascript - 如何在客户端获取连接的 socket.id?

标签 javascript node.js socket.io

我在 index.js 中使用以下代码

io.on('connection', function(socket){
console.log('a user connected');
console.log(socket.id);
});

上面的代码让我在控制台中打印 socket.id。

但是当我尝试使用以下代码在客户端打印 socket.id 时

<script>
var socket = io();
var id = socket.io.engine.id;
document.write(id);
</script>

它在浏览器中输出“null”。

最佳答案

在访问 id 字段之前,您应该等待事件 connect:

有了这个参数,就可以访问到sessionID

socket.id

编辑:

客户端:

var socketConnection = io.connect();
socketConnection.on('connect', function() {
  const sessionID = socketConnection.socket.sessionid; //
  ...
});

服务器端:

io.sockets.on('connect', function(socket) {
  const sessionID = socket.id;
  ...
});

关于javascript - 如何在客户端获取连接的 socket.id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44270239/

相关文章:

javascript - Bootstrap 4 Accordion 在 Knockout foreach 循环中,展开/折叠问题时更改图标

javascript - jquery 删除数组中的空元素

node.js - 了解 Node 插件 API (N-API) HandleScope

javascript - Socket.io 意外断开连接

javascript - ramda.js中chain()和map()的区别

javascript - JQuery 片段不会一直触发,只是有时触发

javascript - 字符串枚举的反向映射

node.js - 目标入口点 "@fullcalendar/angular"中的错误缺少依赖项

node.js - TypeError : this. sendHandshake 不是一个函数

node.js - socket.io websocket 回退