我们计划使用Websockets技术制作基于HTML5的聊天应用程序。实时聊天应用的HTML5 Websockets?
所以我的问题是:
哪些是支持本机当前为今天的的WebSockets的浏览器?
如果浏览器不支持它,什么是可能的优雅回退?
有没有可以提供帮助的polyfill?
问候,
我们计划使用Websockets技术制作基于HTML5的聊天应用程序。实时聊天应用的HTML5 Websockets?
所以我的问题是:
哪些是支持本机当前为今天的的WebSockets的浏览器?
如果浏览器不支持它,什么是可能的优雅回退?
有没有可以提供帮助的polyfill?
问候,
哪些是支持本机当前今天的WebSockets的浏览器?
正如在前面的答案中指出的那样。
请参见:
如果浏览器不支持它,什么是可能的优雅后备?
如果您的实时Web服务器只支持WebSockets的那么下一个最好的选择是使用web-socket-js它是一个基于Flash的填充工具,其产生其中在相同的方式进行交互作为本地WebSocket
对象WebSocket
对象。
附加回退 - 这需要通过您的实时web服务器通过提供的 JavaScript客户端库支持和托管 - 被下令从最好到最差:
选项1.和2.可以通过各种不同的方式实现,具体取决于网页浏览器。这是什么让他们'黑客'。我们现在有用于双向通信的WebSocket和EventSource(服务器发送的事件),它与HTTP Streaming非常相似,并且支持自动重新连接。
有没有可以帮助的polyfill?
是的,参见前面提到的web-socket-js。
对于PHP,您最好的选择是Ratchet。它不在Apache内运行,所以它不会受到同样的限制 - 它不是在考虑请求/响应范例的情况下构建的。
最常用的解决方案,我现在看到的是:
对于其他选项 - 包括像Pusher托管服务(谁我在写作的时候工作) - 看看这个realtime web tech guide这我保持(并接受的捐款对)。
正如NullPoiиteя和Orangepill指出,你可以看看caniuse和html5please。所以这是你的第一点/
你的第二点和第三点更多的是后备选项。那么你可以使用投票。 (有关更多信息,请参阅此answer)。
那么这不是在你的问题,但你应该考虑的一点(因为你标记在PHP下)。只要用户处于活动状态,Websockets就具有活动连接。 PHP并非如此,你的服务器会涌入连接,而且一个意思不好的人也可以很容易地确保服务器被淹没。
这是因为如果你想要它,你需要设置超时限制为0(所以从不)。所以你的服务器会堆积请求,直到它满了。 (它如何作为连接而死,我不知道)。
如果你不想使用websockets和PHP,你应该看看pusher。我将这项服务用于我自己的聊天。它像魔术一样运作,把所有困难的事情从你身上带走。
我希望信息帮助您开发一个应用程序尼夫
Pusher付款,我正在寻找的东西,可以帮助我把整个东西放在我的服务器本身。所以是的,我目前正在调查socket.io –
是的,我认为PHP会导致各种各样的问题,所以我想知道是否有任何方法来防止内存丢失,像推送服务正在使用的东西? –
你可以做的是使用websockets和轮询。不理想,但您使用WebSocket进行通信,并且轮询每小时发送一条消息,如果未收到,连接将被清空。再次不理想。 PHP不是用于这种通信的 – MKroeders
Faye是惊人的,我喜欢Pusher,但我想要一些自由而容易实现的东西,我可以在自己的服务器上进行管理。在开始学习Node.js之后,我对Faye留下了深刻的印象。它为websockets,http提供了很好的支持,但我喜欢你可以使用Bayeux协议。
,如果你惯于打造成为学习你可以使用的node.js这是一个开始,你也可以找到很多资源,导致你从头开始的好地方着想。
但对我来说,我宁愿使用PHP的Web套接字服务器进行交际和JavaScript克伦特端 与official PHP site帮助就可以开始建立自己的网络套接字服务器。
您是否真的认为PHP是一个很好的WebSocket服务器,它的内存问题和所有? –
请定义(内存问题),这取决于你不会创建的应用程序的类型 –
我们已经完成了这样的事情,并且建立一个稳定的php socket服务器来连接html5 web套接字是一个相当大的挑战。
我们的常见问题有几个信息:http://www.livesupportrhino.com/faq/c/4/rhino-websocket
所有主要的浏览器支持网络插座http://caniuse.com/websockets并看到浏览器中打开此链接,您要检查http://websocketstest.com/ –
http://html5please.com/#Websockets – Orangepill