我不知道如何向你提出这个问题。实际上我正在创建一个需要以下内容的应用程序:
我有以下代码:
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>
问题
此代码的问题在于,无论我做什么,它都会向每个群组中的每个人发送消息。如何隔离不同组的不同用户以连接到不同的节点/套接字,以便我可以将消息广播到特定的组中。
我很抱歉如果我无法正确提出问题。如果您有任何疑问,请询问我。 任何帮助都非常感谢。