socket io反复更改socket.id

时间:2015-12-17 04:50:55

标签: javascript socket.io

这是正常行为吗?      的 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分钟):

SOCKET CONNECTING SddHIXmWSeHEfDnlAAAC

SOCKET断开连接SddHIXmWSeHEfDnlAAAC

SOCKET CONNECTING o0zj7GE1tlO3RQw1AAAD

SOCKET断开连接o0zj7GE1tlO3RQw1AAAD

SOCKET CONNECTING lAnfvaF3DXMyhc6lAAAE

SOCKET断开连接lAnfvaF3DXMyhc6lAAAE

SOCKET CONNECTING tP3cjtJ-VpPPjoG2AAAF

SOCKET断开连接tP3cjtJ-VpPPjoG2AAAF

SOCKET连接a2o13T7CgcKDEbppAAAG

SOCKET断开a2o13T7CgcKDEbppAAAG

SOCKET CONNECTING avogGTh0KVtLFOqNAAAH

SOCKET断开连接avogGTh0KVtLFOqNAAAH

SOCKET连接usoQGxKAMsth2zTcAAAI

SOCKET断开连接usoQGxKAMsth2zTcAAAI

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

1 个答案:

答案 0 :(得分:2)

如果你使用 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';