CNode

关于socket.io的问题

问答
QQuoniamYIF发布于11 年前最后回复11 年前6 回复6686 浏览0 收藏

今天在看node.js实战(吴海星 译)的时候,里面有段代码 io.sockets.clients(room) 这是什么意思?我在官方文档里也没找着.clients 谁能帮我解释一下啊?

查看回复

回复 (6)

H
haozxuan#1·11 年前

列出页数,行数撒。不晓得有没有上线文

M
meteormatt#2·11 年前

io.sockets.clients(room) 是以前的了. 意思应该是列出在线的客户端数量 现在是io.sockets.sockets.length

X
xuanjinliang#3·11 年前

新版本的socket.io已经没有clients这个对象,可以试一下以下的方法! var usersInRoom = io.sockets.adapter.rooms[room]; var length = Object.keys(usersInRoom).length; if(length > 1){ var usersInRoomSummary = 'Users currently in ' + room + ':'; var array = []; for(var index in usersInRoom){ array.push(nickNames[index]); } usersInRoomSummary += array.join(",") + '.'; socket.emit('message',{text:usersInRoomSummary}); }

Q
qianjiahao#4·11 年前
引用 xuanjinliang新版本的socket.io已经没有clients这个对象,可以试一下以下的方法! var usersInRoom = io.sockets.adapter.rooms[room]; var l...

@xuanjinliang 关于room的方法哪里能找到比较详细的说明呀?官方api例子有点少啊。。。

X
xuanjinliang#5·11 年前
引用 qianjiahao@xuanjinliang 关于room的方法哪里能找到比较详细的说明呀?官方api例子有点少啊。。。

@qianjiahao http://socket.io/docs/server-api/这个网址是官方的,但说的不是很清晰(个人感觉),我是把 io.sockets.打印出来,看里面有什么对象,去调用,发现里面有adapter这个对象,还有一个rooms的对象,都是获取有哪些房间,但发现连用户的socket.id都变了存在了rooms里面(感觉是一个bug),所以我自己定义一个变量数组记录现在的房间数据。

Q
qianjiahao#6·11 年前
引用 xuanjinliang@qianjiahao http://socket.io/docs/server api/这个网址是官方的,但说的不是很清晰(个人感觉),我是把 io.sockets.打印出来,看里面有什么对...

@xuanjinliang 恩恩,我在github搜到的项目貌似也是自己在建个对象存在内存里,或者存数据库,貌似也就这么搞了。。。

参与回复
登录后即可参与回复。登录