是否有可能使用闪光灯sockets和networkingsockets同时socketsio?

现在我一直在为此苦苦挣扎,试图在各处find信息,但是我解决不了。

基本上,我有一个Flash客户端应用程序和一个浏览器 – 基于铬的应用程序连接到一个套接字io – nodejs服务实例。

如您所知,Chrome浏览器可以通过Websocket工作,而我的Flash应用程序则可以通过Flash插槽工作。

一切工作之间的铬和节点之间,但是当我从我的Flash应用程序进行任何交互,降级连接types为闪存套接字而不是Web套接字使Chrome Web应用程序无法读取服务器,因为服务器开始发出消息使用flashsockets。 基本上,当我从Flash做任何交互时,Chrome不再收到任何信息。

你知道有什么方法通过闪存节点保持服务信息,但也保证节点 – 铬通过websockets进行通信?

我已经尝试了推荐的库与socket io连接,你可以在socket io网站上find它; 这是一个https://github.com/simb/FlashSocket.IO

另外我试图在AS3中使用一个使用websockets的库,但似乎无法与socket.io正确通信; 这是一个https://github.com/y8/websocket-as 。 尝试连接时输出的消息套接字是“debug – 销毁nonsocket.io升级”

这里有一些debugging代码,显示flashsockets和websocket,这是我的两个客户端应用程序试图连接到相同的套接字io服务器:

https://gist.github.com/4637617

非常感谢你的帮助!

谢谢,最后经过很多工作,我已经设法解决了这个问题。

Socket.io有一个非常聪明的实现,允许你使用命名空间和房间。

我已经解决了两个不同的命名空间:一个用于浏览器,另一个用于flash。

例:

var browser = io.of("/browser").on('connection', function (socket) { socket.on('move', function (data) { browser.emit("move", {"left" : data.left, "top" : data.top}); }); }); io.sockets.on('connection', function (socket2) { socket2.on('click', function (data) { browser.emit("move", {"left" : 1000, "top" : 50}); }); }); 

当我点击一个button时,Flash会发送“click”,然后向浏览器命名空间中的所有浏览器发送消息。

非常有用。

我希望这可以帮助别人!

祝一切顺利

如果使用多个传输configurationsocket.io,当客户端连接时,它将select最佳可用传输。 所以如果一个客户端只能使用flash,那就是它将使用的,而另一个客户端则可能使用xhr-polling。

默认情况下,你有websocket,htmlfile,xhr-polling,jsonp-polling,但不是flashsocket。

有关更多详细信息,请参阅https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO