前段時間用goeasy實現(xiàn)了實時推送功能,這里寫個工作筆記方便以后查看,也希望可以幫到其他需要實時推送的朋友。
Goeasy是第三方推送服務(wù)。如果自己使用原生態(tài)的socket.io,
websocket進(jìn)行開發(fā)的話,需要花時間研究如何實現(xiàn),且不說把這兩種技術(shù)運(yùn)用的好不好,單是測試就夠我忙了,你要進(jìn)行壓力測試、性能測試、功能測
試,總的來講自己開發(fā)成本周期長、維護(hù)成本高,所以我選擇了第三方推送服務(wù)。之后我對比了幾個做推送的第三方產(chǎn)品,個人感覺goeasy推送更穩(wěn)定,推送
速度快,代碼簡單易懂上手快,所以最后我推薦了goeasy給我的領(lǐng)導(dǎo)。GoEasy官網(wǎng):goeasy.io
推送的原理:GoEasy的實現(xiàn)原理很簡單,就是推送消息的一端只負(fù)責(zé)推送,而需要接收的頁面需要預(yù)先訂閱。訂閱什么呢?訂閱channel。往
某個channel上推送消息,客戶端就訂閱相同的channel,這樣就可以確保準(zhǔn)確接收。通過channel我們可以自己指定哪些頁面或哪些用戶可以
接收到從這個channel上推送出來的消息。
JAVA Web實時消息后臺服務(wù)器推送技術(shù)
如果實現(xiàn)web實時推送
開發(fā)語言:Java
1. 獲取goeasy的appkey
Appkey是使用goeasy推送的“鑰匙”。在goeasy官網(wǎng)上注冊好之后創(chuàng)建一個free application,
創(chuàng)建好之后你就可以看到一個application有兩個key.一個是supper key, 另一個是subscribe
key。這個兩個key的區(qū)別是:supper key既可以用于推送也可以用于訂閱; 但subscribe
key只可以用于訂閱,它沒有推送信息的權(quán)限。處于安全考慮,我用supper key來進(jìn)行推送消息,用subscribe key來訂閱消息。
2. web客戶端訂閱channel
1) 引入goeasy.js
2) 連接goeasy
3) 訂閱channel
function subscribe(){
goEasy.subscribe({
channel: 'demo_channel',
onMessage: function(message){
//當(dāng)有消息推送到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
...
...
這里需要注意的是,使用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
如果你用的是其他開發(fā)語言, goeasy還提供了RestfulAPI在后臺來推送消息。具體使用請參照goeasy 官網(wǎng)的參數(shù)使用及說明。
所有推送的消息以及接收情況,可以登錄到goeasy后臺進(jìn)行查看。考慮到信息的安全性,大家可以根據(jù)自身需求來決定是否在推送前對信息加密。
感興趣的朋友可以先到https://goeasy.io上先看看demo頁面的效果。好了,希望這篇文章對大家有幫助。共勉……
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。