在socketio中向特定客户端组发送消息

jhc*_*hen 1 javascript websocket node.js socket.io

通过套接字io向一组用户发送消息的最佳方式是什么,例如只有特定聊天室而不是所有用户?

我知道只使用Socket.io-node向所选用户发送数据,但最近发布了socketio版本.7似乎可能有更优雅的方式使用get/set或namespacing的新api?

Alf*_*red 7

我认为你应该查看房间概念:

客房

有时你想把某些插座放在同一个房间里,这样就可以很容易地将它们全部播放到一起.

可以将其视为套接字的内置通道.套接字在每个插槽中加入和离开房间.

服务器端:

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.join('justin bieber fans');
  socket.broadcast.to('justin bieber fans').emit('new fan');
  io.sockets.in('rammstein fans').emit('new non-fan');
});
Run Code Online (Sandbox Code Playgroud)