socket.io 1.0中的to与in
socket 1.0中的to 与in
众所周知socket.io有全局广播事件和针对某个房间(room)来发送事件比如
//新建个房间
io.of("/chat").on("connection",function(socket){
//针对chat发送hello事件
socket.broadcast.to('chat').emit('hello',data);
})
//连接到这个房间
socket.join("chat")
但是,我们一般都不会这么去做..如果有100个房间那么要处理100个room所以一般都是一个总连接内直接分组不手动分组处理比如
socket.on("connection",function(socket){
//加入hello房间 /分组到hello
socket.join("hello")
})
现在坑的一步来了 在socket.io 1.0版本中或者所在所有版本中强烈推荐这样写不容易掉坑
//给hello分组发送hello事件
socket.broadcast.to('hello').emit('hello',data);
很抱歉上面那一步根本行不通!请相信一位因这个bug而找了一小时的资料的苦逼程序猿所以推荐用这种写法
io.sockets.to('hello').emit('hello',data);
获取所有的连接然后找到hello这个分组发送hello事件to和in是一样的意思 把to换成in也是一样的