socket.io发出特定的传输

时间:2013-09-19 21:29:15

标签: flex socket.io

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

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

我的理由是我想用FlashSocket.IO创建一个flex .swf,它与我的client.html javascript相同,与我的服务器app.js对话。

1 个答案:

答案 0 :(得分:-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)
}