HTML5 Websockets服务器需求

11

我昨天花了一整天的时间来学习HTML5 WebSockets,但仍然对其中的几点有些困惑:

  1. 我是否需要在我的Apache服务器上安装任何其他插件才能运行WebSocket服务器?
  2. 在没有访问服务器根目录的情况下,是否可以在共享服务器设置中运行WebSockets?
  3. IE9是否支持WebSockets?如果不支持,那么如果浏览器支持有限,使用它们是否有意义?我应该考虑使用轮询技术吗?
  4. 如何同时运行多个WebSockets(例如多个聊天应用程序实例),每个实例都有独特的定义方式是怎样的?
  5. 是否有可靠的备选方案可供不支持WebSockets的浏览器使用?

希望有人能帮我理解这些问题,非常感激! W.


这可能会引起您的兴趣:http://www.webmonkey.com/2010/12/security-flaws-force-firefox-opera-to-turn-off-websockets/ - Bart van Heukelom
3个回答

4
不要把WebSockets视为Web服务器插件。WebSockets是在浏览器和其他东西之间建立(几乎)原始套接字连接的一种方式。标准委员会希望允许Web服务器轻松地将WebSocket连接转发到其目标服务,但是在协议的v76版本中,WebSocket握手明确与HTTP设置不兼容(由于模糊的安全原因)。现在已经发现了严重的安全问题,这可能会改变,并重新允许Web服务器成为WebSockets服务器。

是的,WebSockets握手看起来很像HTTP,所以很容易混淆,但即使它与HTTP升级请求兼容时,它仍然只是为了使Web服务器轻松转发,而不是为了使Web服务器成为WebSockets服务器。

最近有一个WebSockets安全问题,这可能意味着大多数浏览器制造商将禁用WebSockets,直到下一个版本的协议准备好为止,但除此之外,WebSockets几乎被所有浏览器支持,因为没有本地支持的浏览器可以使用基于Flash的回退web-socket-js。 iOS 4.2也支持WebSockets(尽管由于安全问题,这也可能会被暂时禁用)。

因此,您的问题的答案是:1)Mu 2)是的 3)不太可能 4)未由WebSockets定义 5)是的:请参见web-socket-js


4

对于不支持WebSockets的浏览器,是否有可靠的备选方案?

Socket.IO似乎效果不错。虽然我自己还没有使用过它进行开发,但我已经测试了使用它的应用程序,可以在不支持WebSockets的浏览器上使用。

值得一提的是,在谈论和/或研究此问题时,您可能希望放弃HTML5。 WebSockets不再是HTML5的一部分。如果您搜索“HTML5 WebSockets”的信息,您更有可能找到过时的信息。


0

1) 不行。 2) 可以。 3) 谁知道呢。微软一如既往地不说,但可能不支持。

Firefox、Chrome和Opera都宣布暂时不支持Web Sockets,因为标准不完整且存在安全问题。现在搞这个可能还为时过早。


Chrome、Firefox 4、Safari 和 Opera 都支持 WebSocket 草案76。甚至在 iPhone 上的 Safari 也支持。由于 WebSocket 标准仍在不断发展中,未来可能会出现某些兼容性问题。 - BastiBen
我感到困惑的原因是,所有关于websockets的教程都展示了通过命令行接口初始化服务器。当应用程序在线并且不在本地时,我无法访问此类命令行接口。而如果在apache服务器上不需要安装其他软件,那么这个http://code.google.com/p/pywebsocket/ 是做什么用的呢? - wilsonpage
@badcat - 请在谷歌上搜索FF,Opera和Chrome的最新消息。 - Rob
@Wilson Page - pywebsocket 是一种扩展,可以更轻松地与 Apache 配合使用,但您不需要对服务器本身进行任何更改。 - Rob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接