標籤:goeasy推送 web即時推送 即時推送 java推送
前段時間用goeasy實現了即時推送功能,這裡寫個工作筆記方便以後查看,也希望可以幫到其他需要即時推送的朋友。
Goeasy是第三方推送服務。如果自己使用原生態的socket.io, websocket進行開發的話,需要花時間研究如何?,且不說把這兩種技術運用的好不好,單是測試就夠我忙了,你要進行壓力測試、效能測試、功能測試,總的來講自己開發成本周期長、維護成本高,所以我選擇了第三方推送服務。之後我對比了幾個做推送的第三方產品,個人感覺goeasy推送更穩定,推送速度快,代碼簡單易懂上手快,所以最後我推薦了goeasy給我的領導。GoEasy官網:goeasy.io
推送的原理:GoEasy的實現原理很簡單,就是推送訊息的一端只負責推送,而需要接收的頁面需要預先訂閱。訂閱什麼呢?訂閱channel。往某個channel上推送訊息,用戶端就訂閱相同的channel,這樣就可以確保準確接收。通過channel我們可以自己指定哪些頁面或哪些使用者可以接收到從這個channel上推送出來的訊息。
如果實現web即時推送
開發語言:Java
1. 擷取goeasy的appkey
Appkey是使用goeasy推送的“鑰匙”。在goeasy官網上註冊好之後建立一個free application, 建立好之後你就可以看到一個application有兩個key.一個是supper key, 另一個是subscribe key。這個兩個key的區別是:supper key既可以用於推送也可以用於訂閱; 但subscribe key只可以用於訂閱,它沒有推送資訊的許可權。處於安全考慮,我用supper key來進行推送訊息,用subscribe key來訂閱訊息。
2. web客訂閱channel
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);
}
});
}
3. 用JAVA SDK推送訊息到channel
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頁面的效果。好了,希望這篇文章對大家有協助。共勉……
本文出自 “11888087” 部落格,請務必保留此出處http://11898087.blog.51cto.com/11888087/1829676
GoEasy推送即時訊息到web端