Javascript 将连接用户发送到客户端会导致范围错误
我正在尝试发送一组连接到服务器的用户,并将它们发送到客户端,在那里我将对它们进行循环 app.jsJavascript 将连接用户发送到客户端会导致范围错误,javascript,node.js,Javascript,Node.js,我正在尝试发送一组连接到服务器的用户,并将它们发送到客户端,在那里我将对它们进行循环 app.js io.on('connection', function (socket) { socket.on('users', function (data) { var clients = io.sockets.sockets; socket.emit('clients', { user : clients }); }); }); index.html
io.on('connection', function (socket) {
socket.on('users', function (data) {
var clients = io.sockets.sockets;
socket.emit('clients', { user : clients });
});
});
index.html
socket.emit('users', { });
socket.on('clients', function(data) {
console.log(data);
//for(var obj in data) {
// console.log(data[obj]);
//}
});
我遇到的问题是,当试图将用户传递给客户端时,它抛出了一个Range错误
有两个问题-
因为,在注释中,您显示它是一个,它看起来像是由
io.sockets.sockets
指向的对象在某处有一个循环引用
根据您在问题中所说的,我在这里做一个假设,但由于您只是尝试发送已连接用户的列表,也许您可以在将其发送给客户端之前综合客户端
列表:
io.on('connection', function (socket) {
socket.on('users', function (data) {
var clients = io.sockets.sockets.map(function (client) {
// Derive some value---anything---from the `client` value. Once
// done that, return the resulting client value. Below, you can
// see that I have derived nothing, but I recommend that you *do*
// derive *something*.
return client;
});
socket.emit('clients', { user : clients });
});
});
使用stacktrace?socket.emit('clients',{user:clients})时,确切的错误是什么;将该数组发送到客户端时出现问题抱歉,我的意思是你说
“它抛出了一个RangeError”
。请在问题中包括全部错误。否则很难判断。这就是全部错误,这是它显示的唯一一行Hanks,“超出了最大调用堆栈大小”是一个关键的细节。