0

socket.io 可以以一种传输方式发出然后以另一种方式发出吗?

socket.emit('my event',{data:'something'},{transports: ['websocket','xhr-polling']});
socket.emit('my event',{data:'somethingelse'},{transports: ['flashsocket']});

我的原因是我想用 FlashSocket.IO 创建一个 flex .swf,它与我的服务器 app.js 对话,就像我的 client.html javascript 一样。

4

1 回答 1

-1

我认为您应该使用命名空间,并为您的 js 客户端连接到命名空间 a。对于您的 flex 客户端,连接到命名空间 b。通过这种方式,您可以更轻松地管理您的客户,并更清楚地了解您对每个组所做的工作。你也可以尝试这样的事情:

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

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

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

function myEmit(channel, msg) {
  if (channel == 'chat1')
    mySocket.emit(msg);
  else if (channel == 'chat2')
    mySocket2.emit(msg)
}
于 2013-09-23T12:01:06.130 回答