用PHP 和Websocket實現即時通訊---GoEasy

來源:互聯網
上載者:User

標籤: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(‘Meessagereceived:‘+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即時訊息推送


用PHP 和Websocket實現即時通訊---GoEasy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.