これは、socket.ioのルーム機能ではかなり簡単です。 LearnBoost wikiのドキュメントを見てください。
https://github.com/LearnBoost/socket.io/wiki/Rooms
これは、単一ソケットの上に複数の部屋に接続されてすることができます。私は次のコードを使って簡単なテストをまとめました。
Expressのルートからのメッセージを送信するサーバ
io.sockets.on('connection', function(socket){
socket.on('subscribe', function(room) {
console.log('joining room', room);
socket.join(room);
})
socket.on('unsubscribe', function(room) {
console.log('leaving room', room);
socket.leave(room);
})
socket.on('send', function(data) {
console.log('sending message');
io.sockets.in(data.room).emit('message', data);
});
});
クライアント
var socket = io.connect();
socket.on('message', function (data) {
console.log(data);
});
socket.emit('subscribe', 'roomOne');
socket.emit('subscribe', 'roomTwo');
$('#send').click(function() {
var room = $('#room').val(),
message = $('#message').val();
socket.emit('send', { room: room, message: message });
});
は、同様に非常に単純です。
app.post('/send/:room/', function(req, res) {
var room = req.params.room
message = req.body;
io.sockets.in(room).emit('message', { room: room, message: message });
res.end('message sent');
});
この問題は解決しましたか?もしそうなら、あなたは私にソースコードを指摘できますか?ありがとう – sinusGob