将连接用户发送到客户端会导致范围错误
Sending connect users to client causes Range Error
我正在尝试发送一个连接到服务器的用户数组,并将它们发送到客户端,在那里我将循环使用它们。
app.js
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]);
//}
});
我遇到的问题是,当试图将用户传递给客户端时,它会引发RangeError。
有两个问题-
我这样做对吗?我是node.js和网络/服务器编码的新手
为什么我会得到RangeError。
由于在注释中显示了这是一个堆栈溢出错误,因此看起来io.sockets.sockets
指向的对象在某个地方有一个循环引用。
我在这里根据你在问题中所说的进行假设,但由于你试图简单地发送连接用户的列表,也许你可以在将其发送给客户端之前合成clients
列表:
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 });
});
});
相关文章:
- 日志:未捕获的范围错误:超过了最大调用堆栈大小
- 未捕获的范围错误:setTimeout()超过了最大调用堆栈大小
- JavaScript继承:未捕获的范围错误:超过了最大调用堆栈大小
- 收到“范围错误: 超出最大调用堆栈大小”错误
- 范围错误与 mongo 进行$near查找
- 未捕获的范围错误:WebSQL查询结果中的项索引超出范围错误
- IE 8变量范围错误
- Chrome/jQuery未捕获范围错误:超过了最大调用堆栈大小(函数循环)
- AngularJS-范围错误:''之后超过了最大调用堆栈大小;应用程序启动
- javascript中的函数范围错误
- Chrome 未捕获范围错误:最大调用堆栈大小超出了点击递归
- 此节点范围错误背后的原因
- jquery .on 获取未捕获的范围错误:超出最大调用堆栈大小
- Babel/RequireJS + 类型“范围错误:超出最大调用堆栈大小”
- 范围错误:调用堆栈超出异步 .eachSeries 上的范围错误
- 复杂 JSON 处理期间的“范围错误: 超出最大调用堆栈大小”
- 范围错误:在 Javascript 中超出了最大调用堆栈大小
- 范围错误:超出最大调用堆栈大小(角度)
- 余烬错误 - 加载路由时出现“调用堆栈大小超出范围错误”
- 解决jQuery ui日期范围错误