用PHP和Websocket实现实时通讯
生活随笔
收集整理的這篇文章主要介紹了
用PHP和Websocket实现实时通讯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說到websocket大家一定不會陌生,WebSocket是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通信(full-duplex)。一開始的握手需要借助HTTP請求完成,當瀏覽器和服務器握手成功后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。有了websocket, 大家就可以摒棄以往用輪詢來實現實時通訊的方式了。 有了websocket后,應運而生的相關產品也不在少數,選擇也成了最大的問題,在這里你可能會說“干嘛用別人的,我可以自己用原始的開發一個啊” 對此我只想說你真NB,我也很想知道你是如何解決以下問題的: 1.??????? 你是打算花1個月,2個月還是1年還實現一個websocket通信的?如果你說你打算花一個月,那說明兩點,你的技術要上天了(這么刁的東西你可以那么快弄出來還不存在性能問題,除了我現有的膝蓋,請把我下輩子的膝蓋也拿走),貴公司土豪(貴公司對技術的炙熱追求已經達到了行業的巔峰了,看來你們的項目不是很緊嘛,預算挺多嘛,告訴我貴公司的名字我也來鉆研技術,哈哈哈) 2.??????? Websocket只支持ie10+, chrome, firefox, safari, opera. 不說多了,當前IE9及低版本的用戶群體還有很多,你是怎么覺得這些低版本瀏覽器的實時通訊的? 上面兩個問題無非就是涉及到兩方面問題:開發成本和瀏覽器兼容性問題。站在管理者角度來看,都希望盡可能多的壓縮開發成本,所有選擇第三方推送服務是眾多企業的一個理性選擇。 選擇產品時需要注意以下幾點: 1.??????? 代碼結構是否清晰易懂 2.??????? 消息到達率怎么樣,數據到達情況是否可視 3.??????? 瀏覽器兼容性如何 4.??????? 產品的穩定性和安全性 好,重點來了,我不去評判其他產品的優缺點,只給出我對我最終選擇的產品-GoEasy推送作一個單方面的評價。GoEasy推送滿足我上面列的所有指標。 1.??????? 代碼結構是否清晰易懂 GoEasy的代碼分為訂閱和推送兩部分: 訂閱時,只需要三句代碼: a.??????? 引入goeasy.js (文件非常小) <script type="text/javascript" src="http://cdn.goeasy.io/goeasy.js"></script>
?
b.??????? 創建goeasy實例 var goEasy = new GoEasy({appkey: 'appkey'});?
c.??????? 訂閱channel.??????????????
goEasy. subscribe({channel: 'channel1',onMessage: function(message){alert('Meessage received:'+message.content);//接收到推送的消息}});?
推送時,用goeasy提供的restful api來實現,api只需要三個參數即可:
URL: http://goeasy.io/goeasy/publish
Method: Post
Parameters: appkey, channel, content
2.??????? 消息到達率怎么樣,數據到達情況是否可視 我們項目的用戶并發量目前最高在300人的樣子,每天會推送30條消息的樣子,每條消息的到達情況都可以在goeasy后臺頁面進行查看。至于到達率,我們項目的對到達率的要求是98%, 就目前來看GoEasy應該是100%的到達率。 3.??????? 瀏覽器兼容性如何 除了常用的瀏覽器chrome, firefox, safari, opera外還支持IE 6到IE11的版本,低版本IE瀏覽器GoEasy采用的是polling的方式。GoEasy在兼容性這方面做的很不錯。 4.??????? 產品的穩定性和安全性 穩定性的判定:項目已經持續運行了4個月了,沒有出現過消息推不出或接收不到的情況。 安全性的判定:GoEasy在安全控制方面主要是通過appkey來控制,創建好app后系統會生成兩個key,一個既可以用來接收又可以用來推送,另一個只可以用來接收。所以用戶可以選擇性的暴露你的key. 這樣輕松用PHP實現客戶端與服務器端的實時通信了。 PHP websocket實時消息推送 ?轉載于:https://www.cnblogs.com/emmamao/p/6203133.html
總結
以上是生活随笔為你收集整理的用PHP和Websocket实现实时通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦回JavaScript--数据类型之u
- 下一篇: DC《黑金丝雀》正常拍摄中 未受《蝙蝠女