【发布时间】:2016-02-21 23:09:42
【问题描述】:
尝试学习套接字 io,我正在玩一个测试应用程序,其中:
- 套接字根据页面 url 加入不同的房间(/page1 连接加入房间 page1 等)
- 我有一个单独的“仪表板”页面,我想显示每个页面有多少连接
我有两个问题(文档让我很困惑):
- 当用户断开连接时,我不知道如何确定他们在哪个房间,因此根据房间执行不同的功能。
这是我的尝试:
服务器代码
io.on('connection', function(socket){
socket.on('joinRoom', function(room){
console.log('New connection to room: ' + room);
socket.join(room); // Clients join different rooms depending on the page.
console.log(socket.rooms); // socket.rooms here has a value
// code to increment room counter will go here.
});
socket.on('disconnect', function(){
console.log(socket.rooms); // In this line, socket.rooms is EMPTY
if (socket.rooms == room1){
// decrement room 1 counter
}
});
});
客户端代码
var socket = io();
socket.on('connect', function(){
socket.emit('joinRoom', 'client');
});
- 我的下一个问题,我似乎无法获得正确的语法,让客户端向房间/服务器发出正确的语法,以对来自特定房间的消息做出反应。如果有人能给我一个可以效仿的例子,那将非常有帮助。
感谢阅读。
【问题讨论】:
-
您好,您使用的是哪个版本的 socket.io?语法实际上取决于他们,因为他们一直在通过版本更改来更新他们的房间 API。如果不确定,请在服务器文件夹中运行
npm list并查看socket.io@后面的数字