我们计划使用Websockets技术制作基于HTML5的聊天应用。
所以我的问题是:
目前支持 Websockets 的浏览器目前是什么?
如果浏览器不支持,可能会有什么优雅的回退?
是否有可以提供帮助的polyfill?
此致
答案 0 :(得分:12)
目前支持Websockets的浏览器目前是什么?
正如之前的答案所指出的那样。
请参阅:
如果浏览器不支持,那么可能的优雅后备是什么?
如果您的实时网络服务器仅支持WebSockets ,则下一个最佳选择是使用web-socket-js它是基于Flash的polyfill,它会创建一个WebSocket
对象,可以进行交互与本机WebSocket
对象的方式相同。
其他后备广告 - 需要您的实时网络服务器支持,并由其提供的JavaScript客户端库管理 - 最好的订购次序:
选项1.和2.可以通过多种不同的方式实现,具体取决于Web浏览器。这就是他们'黑客'的原因。我们现在有用于双向通信的WebSocket和EventSource(服务器发送的事件),它与HTTP Streaming非常相似,并且还支持自动重新连接。
是否有可以提供帮助的polyfill?
是的,请参阅前面提到的web-socket-js。
对于PHP,您最好的选择是Ratchet。它不在Apache中运行,因此它没有受到相同的限制 - 它没有考虑到请求/响应范例。
我现在看到的最常用的解决方案是:
对于其他选项 - 包括Pusher等托管服务(我在撰写本文时为之工作) - 请查看我正在维护的realtime web tech guide(以及接受捐款)。
答案 1 :(得分:1)
正如NullPoiиteя和Orangepill所指出的那样,你可以看看caniuse和html5please。这是你的第一点/
你的第二点和第三点更多的是后备选项。那么你可以使用民意调查。 (有关详细信息,请参阅此answer。)
这不是你的问题,而是你应该考虑的一点(因为你在php下标记了它)。只要用户处于活动状态,Websockets就会有活动连接。 PHP不是这样的,你的服务器会涌入连接,而且意义不好的人可以很容易地确保服务器被淹没。
这是因为如果你想要它,你需要将超时限制设置为0(所以从不)。因此,您的服务器会将请求堆叠起来,直到它满了。 (它如何作为连接死我不知道)。
如果你不想使用websockets和PHP,你应该看看pusher。我将这项服务用于我自己的聊天事务。它就像魔法一样,可以让你处理所有困难的事情。
我希望这些信息可以帮助您开发一款应用
答案 2 :(得分:0)
Faye很棒,我喜欢Pusher,但我想要一些免费且易于实现的东西,我可以在自己的服务器上管理。在开始学习Node.js后,我真的对Faye印象深刻。它为websockets,http提供了很好的支持,但我喜欢你可以使用Bayeux协议。
答案 3 :(得分:0)
如果您为了学习而不想构建它,可以使用 node.js 它是一个很好的起点,你也可以找到很多资源引导你从头开始。
但对我来说,我更喜欢使用PHP网络套接字服务器进行通信,并使用javascript进行清理 在official PHP site的帮助下,您可以开始构建您的Web套接字服务器。
答案 4 :(得分:0)
我们已经完成了这样的事情,并且构建一个与html5 websockets相关的稳定的php套接字服务器是一项相当大的任务。
有关常见问题解答的一些信息:http://www.livesupportrhino.com/faq/c/4/rhino-websocket