GoEasy推送即時訊息到web端

來源:互聯網
上載者:User

標籤: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端

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.