標籤:java推送 java websocket
前段時間用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頁面的效果。好了,希望這篇文章對大家有協助。共勉……
本文出自 “12261154” 部落格,請務必保留此出處http://12271154.blog.51cto.com/12261154/1897880
GoEasy推送即時訊息到web端