前段時間用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頁面的效果。好了,希望這篇文章對大家有幫助。共勉……
GoEasy推送實時消息到web端
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.