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对话。
答案 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)
}