Web實時推送實現(xiàn)總結

之前項目需要做一個推送功能横堡,最開始我沒有想過用第三方推送服務。想著可以用已知技術方式完成冠桃,例如定時到服務器看看是否有新的消息命贴,有的話,就讀取下來并顯示,但是這種方式很浪費客戶以及服務器的資源胸蛛,當然這種方式在我們項目里是不可取的污茵。再后來我在網(wǎng)上搜了一些,說是可以用web socket實現(xiàn)我的功能葬项,但是我在網(wǎng)上查了一下使用方式泞当,看了一上午一頭霧水。即使我可以一周兩周內(nèi)用websocket實現(xiàn)我的推送民珍,那我又拿什么來保證我自己寫的推送程序的到達率和速度呢襟士?維護成本一定也會隨著增加!況且我們也不允許花太多開發(fā)成本在這個項目上嚷量!

經(jīng)過上面的一番周折后陋桂,我跟項目組提出使用第三方的推送服務,原因很簡單津肛,第三方推送服務可以滿足我們的需求章喉,縮短我們的開發(fā)測試維護成本汗贫,術業(yè)有專攻身坐,它們在推送方面更有優(yōu)勢,服務質(zhì)量也有保證落包!經(jīng)過幾番對比后部蛇,我們最終決定使用了GoEasy推送。它真正的從根本上解決了我們的問題咐蝇!對于他們的服務質(zhì)量很滿意涯鲁,注冊成功后,你可以獲得他們的聯(lián)系方式有序,問題處理得很及時抹腿,不像有些公司的客服,發(fā)封郵件好幾天都沒有任何信息旭寿!從而也解決了我們的后顧之憂警绩!

寫這篇文章的目的很簡單,希望其他同行在做實時推送時少走些彎路盅称!好的東西應該分享給更多人肩祥!

下面我將會分四部分來說明一下如何用GoEasy實現(xiàn)實時推送!如果大家有任何問題缩膝,可以發(fā)我私人郵箱wwweso@163.com混狠!

1.從GoEasy獲取appkey

appkey是驗證用戶的有效性的唯一標識。

?注冊賬號疾层。GoEasy官網(wǎng):https://goeasy.io

?用注冊好的賬號登錄到GoEasy的后臺管理系統(tǒng)将饺,創(chuàng)建您自己應用(application).

?Application創(chuàng)建好之后系統(tǒng)會自動為您生成appkey

系統(tǒng)會生成兩個keys,一個Super key和一個Subscribe key;它們的區(qū)別在于前者既可以訂閱又可以推送俯逾,但后者只能用于訂閱贸桶。

2.GoEasy實現(xiàn)向特定用戶群推送的原理

知道了他們的推送原理,可以更加方便我們了解他們的服務桌肴,以及理解我們寫的代碼皇筛。其實原理很簡單,只需要確定哪些用戶需要接收信息坠七,然后讓這些用戶都訂閱一個相同的channel(頻道)水醋。然后再往這個平臺上推送消息即可!所有關鍵在于channel彪置,channel一致拄踪,則可以接收到信息,否則收不到拳魁!

對于訂閱必須要的信息有:Appkey, channel

對于推送必須要的信息有:Appkey, channel, content

3.用GoEasy實現(xiàn)訂閱(接收)的實例

實現(xiàn)步驟:

1.引入goeasy.js

2.創(chuàng)建goeasy實例/對象

3.用subscribe函數(shù)進行訂閱惶桐,然后在回調(diào)函數(shù)里接收信息即可

實戰(zhàn):


有了這幾行代碼后,只要保證網(wǎng)絡暢通的情況下潘懊,頁面會自動彈出你從任何平臺上推送的信息姚糊。

4.用GoEasy實現(xiàn)推送及接收的實例

目前GoEasy支持三種推送方式:Java后臺推送(它們有提供JAVA SDK和maven遠程倉庫),JS推送授舟,RestAPI推送(有了RestAPI救恨,我們就可以用PHP, .NET, Ruby…來推送信息了,很方便)

說了這么多释树,來我們看一下怎么用GoEasy的三種方式分別實現(xiàn)推送吧肠槽。

4.1.用GoEasy SDK推送

a.Java SDK的獲取方式

方式一,直接在goeasy的官網(wǎng)上進行下載奢啥;方式二秸仙,用maven遠程庫直接導入到項目中。盡管官網(wǎng)上已經(jīng)做了相同的說明了桩盲,我這里還是把關鍵點帖出來寂纪,方便大家查看。

GoEasy SDK下載鏈接:http://maven.goeasy.io/service/local/artifact/maven/redirect?r=releases&g=io.goeasy&a=goeasy-sdk&v=LATEST&e=jar

GoEasy遠程maven庫的配置:


需要注意的是:GoEasy需要依賴兩個額外的jar包:

gson.jar: http://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar

slf4j-api.jar: http://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar

b.實例化GoEasy對象

??? GoEasy goEasy = new GoEasy("your appkey");

c.推送消息

??? goEasy.publish('your_channel', '第一條用GoEasy推送的消息正驻,你真棒弊攘!');

4.2.JS推送

a.引入goeasy.js


b.實例化Goeasy對象,并用publish函數(shù)進行推送


4.3.用RestAPI進行推送

URL: https://goeasy.io/goeasy/publish

Method: Post

參數(shù):appkey, channel, content

例如:https://goeasy.io/goeasy/publish?appkey={your_appkey}&channel={your_channel}&content={your_message}

GoEasy官網(wǎng):https://goeasy.io

快速入門:https://goeasy.io/www/started.jsp

文檔下載:https://goeasy.io/www/docs.jsp

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姑曙,一起剝皮案震驚了整個濱河市襟交,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伤靠,老刑警劉巖捣域,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啼染,死亡現(xiàn)場離奇詭異,居然都是意外死亡焕梅,警方通過查閱死者的電腦和手機迹鹅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贞言,“玉大人斜棚,你說我怎么就攤上這事「么埃” “怎么了弟蚀?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酗失。 經(jīng)常有香客問我义钉,道長,這世上最難降的妖魔是什么规肴? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任捶闸,我火速辦了婚禮,結果婚禮上拖刃,老公的妹妹穿的比我還像新娘删壮。我一直安慰自己,他們只是感情好序调,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布醉锅。 她就那樣靜靜地躺著兔簇,像睡著了一般发绢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垄琐,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天边酒,我揣著相機與錄音,去河邊找鬼狸窘。 笑死墩朦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的翻擒。 我是一名探鬼主播氓涣,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼陋气!你這毒婦竟也來了劳吠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤巩趁,失蹤者是張志新(化名)和其女友劉穎痒玩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蠢古,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年奴曙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片草讶。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡洽糟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出堕战,到底是詐尸還是另有隱情脊框,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布践啄,位于F島的核電站浇雹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏屿讽。R本人自食惡果不足惜昭灵,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伐谈。 院中可真熱鬧烂完,春花似錦、人聲如沸诵棵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽履澳。三九已至嘶窄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間距贷,已是汗流浹背柄冲。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忠蝗,地道東北人现横。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像阁最,于是被迫代替她去往敵國和親戒祠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理速种,服務發(fā)現(xiàn)姜盈,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風情閱讀 1,650評論 0 3
  • 使用背景: 本人做了一個類似QQ空間的DEMO饱亮,可以發(fā)表動態(tài)等等矾芙,但是苦于沒辦法實時更新是否有人發(fā)了動態(tài),然后要通...
    CSU_IceLee閱讀 1,586評論 2 7
  • 若是沒有相遇近上,我們是否都會安好剔宪? 淮揚河畔,霜月齊霽 皎潔的月壹无,輕煙似的云葱绒,像是淡墨暈染了宣紙。清風徐徐地吹斗锭,吹散...
    浮世墨染閱讀 765評論 4 9