socket.io的命名空间(namespace)和房间(room)
socket.io支持命名空间和房间
默认是的命名空间是 '/'
没有默认的房间
socket, room, namespace三者关系:
socket 一定是属于某个namespace,
room 一定是属于某个namespace,
socket可以在某个房间或者不在任何房间
使用of来创建命名空间:
var nsp = io.of('/my-namespace');
nsp.on('connection', function(socket){
console.log('someone connected'):
});
nsp.emit('hi', 'everyone!');
客户端可以使用
var socket = io('/my-namespace');
链接到这个命名空间
通常使用默认命名空间,所以可以使用省去命名空间名字,
var socket = io('/');
或者
var socket = io();
房间(room)
创建和加入房间是同一个函数 join
socket.join('some room');
离开房间
socket.leave('some room');
给一个房间的中的所有客户端发消息:
io.to('some room')emit(message);
或者
io.sockets.in('some room').emit( message );
参考:
http://socket.io/docs/rooms-and-namespaces/
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.