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也是一样的