2011-07-06 79 views
2

我希望能够从网页打开一个长期运行的二进制连接到服务器应用程序。我应该能够频繁但任意的时间间隔将数据从服务器推送到客户端,并使其快速到达(所以HTTP GET轮询可能不足)。我希望能够解包和解码客户端的二进制数据,而不是将服务器更改为使用不同的协议,因为服务器已经有了他们自己的协议。使用浏览器端JavaScript的实时二进制套接字连接

如有必要,我可以插入一个代理应用程序,它可以在浏览器和服务器之间进行转换,但我希望尽可能少。如果服务器或与服务器通信的代理应用程序会影响安全模型,则它们可能与网页处于相同的域。

我知道Socket.IO,它似乎接近我想要的东西,但很难说什么是功能和限制。我也知道这对Java applet来说相当简单,但我更喜欢不需要插件的解决方案(或者只需要Flash,最坏的情况是,但我仍然希望在Javascript中完成大部分工作)。

此外,跨平台的可用性非常重要 - 如果我可以达到70%的桌面浏览器就没问题。虽然并不关心古代浏览器 - 我不介意强迫用户升级,只是不安装新的东西。如果它也适用于iPhone和Android,它也会很棒。

我最好的选择是什么?

+1

另请参阅:http://stackoverflow.com/questions/307539/how-can-i-communicate-over-tcp-sockets-from-javascript – moonshadow

回答

1

使用XMLSocket的Flash小程序可能是您最好的选择,除非移动兼容性非常重要。它会对您可以发送的数据的格式(所有数据都以NUL分隔的数据包发送)设置一些限制,但如果需要,这很容易进行代理。

+0

有没有一种方便的方法来表示二进制零在这样的流? – Kylotan

+0

想出某种逃避方案,或只是编码一切(例如,十六进制,base64等)。有很多选择。 – duskwuff

相关问题