web+java+js的GoEasy的訊息推送
阿新 • • 發佈:2019-02-13
原文http://blog.csdn.net/xiqincai9/article/details/52535275以前都是使用ajax定時傳送請求到後臺,這種方式非常消耗系統資源。在大併發情況時如果不對執行緒進行控制的話,還會重複取資料,造成資料錯誤。
鑑於這種情況,使用websocket通訊就是一個非常好的選擇。websocket能避免浪費系統資源,但是它有一個缺點就是不相容低版本的IE瀏覽器(貌似是隻支援IE10及以上的IE版本)。為了解決這個問題,我在網上逛了一圈,最終找到了GoEasy推送,網上說它是基於websocket和polling兩種通訊方式而開發的實時推送服務平臺。通過測試得出,低版本的IE瀏覽器都是通過polling方式連線的,而其它瀏覽器都是websocket。GoEasy官網:http://goeasy.io
下面介紹如何使用GoEasy從java後臺推送實時訊息。
1. 從Java後臺推送訊息
初始化GoEasy物件時,需要一個appkey.這個appkey需要大家自己去goeasy官網註冊並建立一個app (大家可以先建立一個免費的app來測試)
到這裡為止後臺程式碼就已經完畢了。
2.2. 訂閱 [javascript] view plain copy
鑑於這種情況,使用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
- publicvoid onFailed(GoEasyError error) {
- System.out.println("推送失敗了,Error code:" + error.getCode() + "; error content:" + error.getContent());
- }
- @Override
- publicvoid 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. 訂閱 [javascript] view plain copy
- <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頁面直接推送訊息的功能:
[javascript] view plain copy- goEasy.publish({
- channel: '系統推送l',
- message: '來自web的推送訊息:接收到了您的推送訊息'
- });