GoEasy推送實時消息到web端

前段時間用goeasy實現了實時推送功能,這裏寫個工作筆記方便以後查看,也希望可以幫到其他需要實時推送的朋友。 
前段時間用goeasy實現了實時推送功能,這裏寫個工作筆記方便以後查看,也希望可以幫到其他需要實時推送的朋友。
Goeasy是第三方推送服務。如果自己使用原生態的socket.io, websocket進行開發的話,需要花時間研究如何實現,且不說把這兩種技術運用的好不好,單是測試就夠我忙了,你要進行壓力測試、性能測試、功能測 試,總的來講自己開發成本週期長、維護成本高,所以我選擇了第三方推送服務。之後我對比了幾個做推送的第三方產品,個人感覺goeasy推送更穩定,推送 速度快,代碼簡單易懂上手快,所以最後我推薦了goeasy給我的領導。 

推送的原理:GoEasy的實現原理很簡單,就是推送消息的一端只負責推送,而需要接收的頁面需要預先訂閱。訂閱什麼呢?訂閱channel。往 某個channel上推送消息,客戶端就訂閱相同的channel,這樣就可以確保準確接收。通過channel我們可以自己指定哪些頁面或哪些用戶可以 接收到從這個channel上推送出來的消息。 

 
開發語言:Java 

 
Appkey是使用goeasy推送的“鑰匙”。在goeasy官網上註冊好之後創建一個free application, 創建好之後你就可以看到一個application有兩個key.一個是supper key, 另一個是subscribe key。這個兩個key的區別是:supper key既可以用於推送也可以用於訂閱; 但subscribe key只可以用於訂閱,它沒有推送信息的權限。處於安全考慮,我用supper key來進行推送消息,用subscribe key來訂閱消息。 

 
1) 引入goeasy.js 
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script> 

2) 連接goeasy 
<script type="text/javascript"> 
        if(typeof GoEasy !== 'undefined'){ 
            var goEasy = new GoEasy({ 
                appkey: 'appkey', 
                onConnected:function(){ 
                    console.log("Connect to GoEasy success."); 
                } , 
                onDisconnected:function(){ 
                    console.log("Disconnect to GoEasy server."); 
                } , 
                onConnectFailed:function(error){ 
                    console.log("Connect to GoEasy failed, error code: "+ error.code+" Error message: "+ error.content); 
                } 
            }); 
        } 
</script> 

3) 訂閱channel 
function subscribe(){ 
  goEasy.subscribe({ 
            channel: 'demo_channel', 
            onMessage: function(message){ 
                //當有消息推送到channel “demo_channel”時,控制檯會自動打印出推送的消息 
                console.log('Meessage received:'+message.content); 
            }, 
            onSuccess:function(){ 
                console.log("Subscribe the Channel successfully."); 
            }, 
            onFailed: function(error){ 
                console.log("Subscribe the Channel failed, error code: "+ error.code + " error message: "+ error.content); 
            } 

        }); 

} 


 

1)添加goeasy maven repository 到pom.xml 
<repositories> 
... 
  <repository> 
    <id>goeasy</id> 
    <name>goeasy</name> 
    <url>http://maven.goeasy.io/content/repositories/releases/</url> 
  </repository> 
</repositories> 
                       
                      
<dependencies> 
  ... 
  <dependency> 
    <groupId>io.goeasy</groupId> 
     <artifactId>goeasy-sdk</artifactId> 
      <version>0.3.1</version> 
  </dependency> 
</dependencies> 

這裏需要注意的是,使用java的sdk時需要依賴兩個jar包,請加入到你的項目裏。 
gson.jar 
slf4j-api.jar 

2) 推送消息到channel 
GoEasy goEasy = new GoEasy("your supper key"); 
goEasy.publish("demo_channel","Welcome xueting",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("Publish success"); 
            } 
        }); 


針對沒有使用maven的朋友,你們可以手動下載java的sdk. 下載地址:http://maven.goeasy.io/service/local/artifact/maven /redirect?r=releases&g=io.goeasy&a=goeasy-sdk&v=LATEST&e=jar 

如果你用的是其他開發語言, goeasy還提供了RestfulAPI在後臺來推送消息。具體使用請參照goeasy 官網的參數使用及說明。 

所有推送的消息以及接收情況,可以登錄到goeasy後臺進行查看。考慮到信息的安全性,大家可以根據自身需求來決定是否在推送前對信息加密。 

感興趣的朋友可以先到https://goeasy.io上先看看demo頁面的效果。好了,希望這篇文章對大家有幫助。共勉……
 


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