Javascript 如何使用Socket.IO创建多个套接字?

Javascript 如何使用Socket.IO创建多个套接字?,javascript,node.js,websocket,socket.io,socket.io-1.0,Javascript,Node.js,Websocket,Socket.io,Socket.io 1.0,我不知道如何向你提出这个问题。实际上,我正在创建一个需要以下内容的应用程序: 许多用户将在此应用程序上注册 每个用户都将与一个或多个组关联 我希望特定组的成员使用io.emit()向其他组成员广播消息 我有以下代码: var app=require('express')(); var http=require('http').Server(app); var io=require('socket.io')(http); app.get('/', function(req, res){

我不知道如何向你提出这个问题。实际上,我正在创建一个需要以下内容的应用程序:

  • 许多用户将在此应用程序上注册
  • 每个用户都将与一个或多个组关联
  • 我希望特定组的成员使用io.emit()向其他组成员广播消息
我有以下代码:

var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname +'/index.html');
});
io.use(function(socket,next){
    var handShakeData=socket.request;
    query1=handShakeData._query['groupId'];
    query2=handShakeData._query['message'];
    next();
});

io.on('connection',function(socket){
    console.log('A user connnected');
    io.emit('emittedMessages','A User Connected: '+query1+"  "+query2);
    socket.on('disconnect', function(){
         io.emit('emittedMessages','A User Disconnected');
         console.log('A user disconnected');
    });     
});


http.listen(3000,function(){
   console.log('Listening oon Port: 3000');
});
这是我的index.html文件:

<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
  var socket = io('http://localhost:3000',{query:"groupId=bar&message=bar2"});
  socket.connect();

  socket.on('emittedMessages',function(msg){
     $('body').append('<br/>'+msg);
  });
</script>

变量套接字=io('http://localhost:3000“,{query:“groupId=bar&message=bar2”});
socket.connect();
socket.on('emittedMessages',函数(msg){
$('body')。追加('
'+msg); });
问题

这个代码的问题是,无论我做什么,它都会向每个组中的每个人发送消息。如何将不同组的不同用户隔离以连接到不同的节点/套接字,以便将消息广播到特定组中

如果我不能正确地提出问题,我很抱歉。如果您有任何疑问,请询问我。
非常感谢您的帮助

听起来你应该使用socket.io聊天室。它们内置于多组套接字中,可以简单地向给定聊天室中的每个人广播,并且给定的套接字可以根据需要在0、1或更多聊天室中广播。你可以在这里阅读关于聊天室的内容:你能给我举个例子,让clinet加入聊天室和服务器广播。。或者任何链接?我之前评论中的链接有什么问题?我无法从该链接中理解。。如何在运行时创建聊天室?你是如何向它广播的?就在这里:。这是一个非常具体的例子,服务器将客户端套接字放入房间,然后向房间广播。请花些时间阅读文档,或就文档中您不理解的内容提出具体问题,因为重复上面写的一般内容是没有意义的。