1. 程式人生 > >基於GoEasy實現Java web實時資料推送

基於GoEasy實現Java web實時資料推送

 以前都是使用ajax定時傳送請求到後臺,這種方式非常消耗系統資源。在大併發情況時如果不對執行緒進行控制的話,還會重複取資料,造成資料錯誤。
   鑑於這種情況,使用websocket通訊就是一個非常好的選擇。websocket能避免浪費系統資源,但是它有一個缺點就是不相容低版本的IE瀏覽器(貌似是隻支援IE10及以上的IE版本)。為了解決這個問題,我在網上逛了一圈,最終找到了GoEasy推送,網上說它是基於websocket和polling兩種通訊方式而開發的實時推送服務平臺。通過測試得出,低版本的IE瀏覽器都是通過polling方式連線的,而其它瀏覽器都是websocket。GoEasy官網:http://goeasy.io
下面介紹如何使用GoEasy從java後臺推送實時訊息。
1. 從Java後臺推送訊息

1.1. 引入goeasy的Java SDK; 大家也可以通過maven將goeasy加入到專案中。SDK的下載和maven配置請大家從goeasy官網上獲取: http://goeasy.io/www/started

快照

1.2. Java 程式碼

    GoEasy goEasy = new GoEasy("03**********************51");  
    goEasy.publish("系統通知", "系統將於今天中午十二點進行維護,屆時系統不可用。", new PublishListener() {  
        @Override  
        public void onFailed(GoEasyError error) {  
            System.out.println("推送失敗了,Error code:" + error.getCode() + "; error content:" + error.getContent());  
        }  
        @Override  
        public void onSuccess() {  
            System.out.println("推送成功");  
        }  
    });  

 
初始化GoEasy物件時,需要一個appkey.這個appkey需要大家自己去goeasy官網註冊並建立一個app (大家可以先建立一個免費的app來測試)
到這裡為止後臺程式碼就已經完畢了。  

2. Web頁面接收
2.1. 引入goeasy.js

    <script type="text/javascript" src="http://cdn.goeasy.io/goeasy.js"></script>  

2.2. 訂閱
<script type="text/javascript">  
  var goEasy = new GoEasy({appkey: '03**********************51'});  
  goEasy.subscribe({  
    channel: '系統通知',  
    onMessage: function(message){  
      alert('收到:'+message.content);  
    }  
    });  
</script> 

3. 最後一步確保在推送前訂閱了的web頁面已經開啟(先訂閱後推送),推送後你的訊息會在訂閱的web頁面彈出來


除了Java後臺推送之外,goeasy同時也提供了Restful API 供其開發語言的使用者輕鬆實現實時web推送,如C#伺服器實時推送,asp.net伺服器實時推送, python伺服器實時推送, PHP伺服器實時推送, Ruby伺服器實時推送.

當然,goeasy也提供從web頁面直接推送訊息的功能:

    goEasy.publish({  
         channel: '系統推送l',  
         message: '來自web的推送訊息:接收到了您的推送訊息'  
    });