1

チャンネルが購読または購読解除されたときにnode.jsサーバー内で追跡する方法を見つけるために、すべてのWebを検索しました。私が正しく知っていることは、バインディングの接続と切断ですが、チャネルでそれを行う方法の手がかりはありません。

io.sockets.on('connection', function (socket) {
    console.log("["+socket.id+"] Connected");

    // handler to know when a socket subscribed a channel (*) ?
    // handler to know when a socket unsubscribed a channel (*) ?

    socket.on('disconnect', function () {
        console.log("["+socket.id+"] Disconnect");
    });
});

出来ますか?

4

1 に答える 1

2

「socket.of('channelName')」を探しています... Socket.ioのドキュメントを参照してください

サーバ:

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

var chat = io
  .of('/chat')
  .on('connection', function (socket) {
    socket.emit('a message', {
        that: 'only'
      , '/chat': 'will get'
    });
    chat.emit('a message', {
        everyone: 'in'
      , '/chat': 'will get'
    });
  });

var news = io
  .of('/news')
  .on('connection', function (socket) {
    socket.emit('item', { news: 'item' });
  });

クライアント:

<script>
  var chat = io.connect('http://localhost/chat')
    , news = io.connect('http://localhost/news');

  chat.on('connect', function () {
    chat.emit('hi!');
  });

  news.on('news', function () {
    news.emit('woot');
  });
</script>
于 2012-10-16T16:42:01.757 に答える