socket.io 1.3.7中的namespace和room(实现大厅加聊天室分布模式)

来源:赵克立博客 分类: Nodejs 标签:nodejssocket发布时间:2015-11-03 13:56:48最后更新:2015-11-04 11:09:52浏览:5076
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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);
  });
});



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python