我們計劃使用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