NodeJS 发送所有客户端的列表都失败
nodejs send list of all clients fail
js.目前我已经成功地完成了几项测试
- 世界您好
- 服务器-客户端与事件通信
- 许多房间
但是我不能发送客户端,给客户端,我使用 socket.io
我想这样做的原因是要有一个当前客户的列表
编辑:
我需要在服务器端存储每个用户的信息
我尝试使用
var io = require('socket.io');
var socket = io.listen(9876);
socket.on('connection', function(client) {
client.join('room');
console.log('new client ' + client.toString());
client.in('room').emit('list', client ); //<-- Error here
client.on('message', function(event) {
console.log('client message! ', event);
client.send(event);
});
client.on('chat', function(data) {
client.broadcast.in('room').emit('LDS', data);
client.in('room').emit('LDS', data);
});
client.on('disconnect', function() {
console.log('out');
});
});
但抛出此错误
connections property is deprecated. Use getConnections() method
C:'Repos'InWeb'NO'node_modules'socket.io'lib'parser.js:75
data = JSON.stringify(ev);
^
TypeError: Converting circular structure to JSON
at Object.stringify (native)
最初的想法是发送一个客户列表,就像这样
var listClients;
socket.on('connection', function(client) {
client.join('room');
listClients.push(client);
client.in('room').emit('list', listClients); //<-- But throws same error
我猜错误是由客户端上下文给出的
我可以修复它吗?
你发送整个对象客户端,你应该使用这样的东西
Socket.io 连接的用户计数
或者使用名称和 ID 创建数组并发送数组而不是整个节点对象。
相关文章:
- 要求输入在数据列表中
- 从javascript创建一个列表
- 如何使用jQuery选择下拉列表的值
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- 如何使用json将对象列表从java转换为javascript
- 区分JSON中的矩阵和列表列表
- 停止 C# 在下拉列表 javascript 验证失败时继续执行服务器端脚本
- 使用 jQuery 隐藏下拉列表,但它失败了
- NodeJS 发送所有客户端的列表都失败
- jquery多选列表更新失败
- 单击列表中的项目->查看详细信息但没有输出?Firebase.child失败:第一个参数是无效路径
- Javascript/PHP在表单提交时重新填充下拉列表失败
- 在IE7, 8和9中填充列表时脚本失败
- 任务队列第5步失败:由于跨域策略限制,无法加载播放列表- Youtube
- 获取失败的Jasmine单元测试列表
- 为什么ava在比较对象列表和对象文本列表时失败
- Ng-option加载json列表失败
- Youtube iframe API加载或提示播放列表失败