用JAVA和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.        產品的穩定性和安全性
     
   JAVA Websocket消息推送
 
好,重點來了,我不去評判其他產品的優缺點,只給出我對我最終選擇的產品-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.
這樣輕鬆用JAVA實現客戶端與服務器端的實時通信了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章