套接字.io ReferenceError客户端未定义

Socket.io ReferenceError client is not defined

本文关键字:未定义 客户端 ReferenceError io 套接字      更新时间:2023-09-26

我试图找到连接到我的socket.io/node.js服务器的客户端的id,使用这里如何获得socket的会话id的顶部答案中描述的方法。但是当我这样做时,我得到错误消息

C:'Games'My games'Newserver'Server'server.js:5
        playerlist[playerlist.length+1] = [client.id,username]
                                           ^
ReferenceError: client is not defined
    at SocketNamespace.<anonymous> (C:'Games'My games'Newserver'Server'server.js
:5:37)
    at SocketNamespace.EventEmitter.emit [as $emit] (events.js:117:20)
    at connect (C:'Games'My games'Newserver'Server'node_modules'socket.io'lib'na
mespace.js:292:10)
    at C:'Games'My games'Newserver'Server'node_modules'socket.io'lib'namespace.j
s:308:13
    at SocketNamespace.authorize (C:'Games'My games'Newserver'Server'node_module
s'socket.io'lib'namespace.js:252:5)
    at SocketNamespace.handlePacket (C:'Games'My games'Newserver'Server'node_mod
ules'socket.io'lib'namespace.js:302:14)
    at Manager.handleClient (C:'Games'My games'Newserver'Server'node_modules'soc
ket.io'lib'manager.js:698:32)
    at Manager.handleUpgrade (C:'Games'My games'Newserver'Server'node_modules'so
cket.io'lib'manager.js:618:8)
    at Server.<anonymous> (C:'Games'My games'Newserver'Server'node_modules'socke
t.io'lib'manager.js:123:10)
    at Server.EventEmitter.emit (events.js:106:17)

我的代码如下

var io = require('socket.io').listen(1337); //Tells server to use socket.io and to listen on port 1337
var playerlist= new Array(); //Array to store player usernames & client ids of these players
io.sockets.on("connection", function(socket) {
    playerlist[playerlist.length+1] = [client.id,username] //Writing to array, crashes here at client.id
    socket.on("username", function(data) {
        var str = "[Server] User "
        var str2 = data
        var str3 = " connected."
        var finalstr = str.concat(str2.concat(str3))
        socket.broadcast.send(finalstr)
        socket.send("[Server] Connected")
    });
});

有人知道如何解决这个问题吗?我只能假设我没有要求()d一些我应该有的东西,但我不知道是什么

没有变量client。用socket代替。

更改行

playerlist[playerlist.length+1] = [client.id,username]

playerlist[playerlist.length] = [socket.id,username]

顺便说一下,我认为这里应该使用playerlist.length