【问题标题】:socket io changes socket.id repeatedlysocket io 反复更改 socket.id
【发布时间】:2022-05-09 17:15:31
【问题描述】:

这是正常行为吗? socket.io-1.3.2.js 来自客户:

socket = io.connect('https://socket.myserver.nl');
    socket.on('connect', function() {
    socket.emit('register', userID, 'Lobby');//ignore this
    });

服务器端节点版本v5.2.0

 io.sockets.on('connection', function (socket) {
    console.log('SOCKET CONNECTING '+socket.id); 
  ////lots of other code//////////


  socket.on('disconnect', function() {  
    console.log('SOCKET DISCONNECTING '+socket.id);    
  });
  });

在测试期间,当我与客户端建立与服务器的单个连接并且完全没有做任何事情时,我得到以下结果(大约 5 分钟):

套接字连接 SddHIXmWSeHEfDnlAAAC

插座断开 SddHIXmWSeHEfDnlAAAC

套接字连接 o0zj7GE1tlO3RQw1AAAD

插座断开连接 o0zj7GE1tlO3RQw1AAAD

套接字连接 lAnfvaF3DXMyhc6lAAAE

插座断开连接 lAnfvaF3DXMyhc6lAAAE

套接字连接 tP3cjtJ-VpPPjoG2AAAF

插座断开 tP3cjtJ-VpPPjoG2AAAF

套接字连接 a2o13T7CgcKDEbppAAAG

套接字断开连接 a2o13T7CgcKDEbppAAAG

SOCKET CONNECTING avogGTh0KVtLFOqNAAH

SOCKET DISCONNECTING avogGTh0KVtLFOqNAAH

SOCKET CONNECTING usoQGxKAMsth2zTcAAAI

SOCKET DISCONNECTING usoQGxKAMsth2zTcAAAI

问题在这里继续:socket-io-changes-socket-id-repeatedly part 2

【问题讨论】:

  • 只有在刷新浏览器(客户端)或网络连接不持久时才会出现这种情况。
  • 这里有reconnect event
  • “然后什么都不做 - 这不太可能。要么你重新启动服务器,要么你刷新页面,要么你的互联网连接被断开并重新连接,这样的事情必须正在发生。无论如何,要处理这种情况,您需要实现用户会话,可能基于 cookie,使用套接字 io 搜索会话管理
  • 尝试开启 socket.io 调试日志:env DEBUG=socket.io:* node app(前提是您使用的是某种 Unix 类型的操作系统)。
  • @ingridsede 您可以将输出记录到文件中(将> socket.io.log 附加到我提到的命令中)。会有一些的性能影响,尽管我怀疑它会很明显。而且您对客户端调试是正确的:只需在控制台中发出命令并保持打开状态即可查看出现的日志消息。

标签: javascript socket.io


【解决方案1】:

如果你使用 React、Vue 或类似的东西

在 src 中创建另一个 js 文件并键入这些行以连接 socket.Export socket.id 和 socket。因为您需要从动态渲染的组件中运行 socket.io。

import { io } from 'socket.io-client';

export const socket = io('http://localhost:5000');
export let socketID = '';
socket.on('connect', () => {
    socketID = socket.id
})

你可以在 React 组件中导入它们。

import { socketID, socket } from './socket';

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多