socket.io 1.3.7中的namespace和room(实现大厅加聊天室分布模式)
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2015-11-04 11:09:52
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
socket.io实现的大厅加聊天室设计架构
socket.io中有namespace和room两个概念
namespace 好比是大厅
room 好比是大厅里的每个聊天室
socket 好比是每个聊天对象(客户端)
namespace
默认是的命名空间是 '/'
服务器端创建一个大厅
var nsp = io.of('/my-namespace'); nsp.on('connection', function(socket){ console.log('someone connected'): }); nsp.emit('hi', 'everyone!'); //下面是默认的大厅名字创建方法 var socket = io('/'); 或者 var socket = io();
客户端连接到这个大厅
var socket = io('/my-namespace'); //下面是处理一些消息 //..........
Room
每个socket连接后都会分配唯一的标识符(Socket#id)并且自动加入一个以自己标识符为名字的聊天室(Room)
io.on('connection', function(socket){ socket.on('say to someone', function(id, msg){ socket.broadcast.to(id).emit('my message', msg); }); });