1. 程式人生 > >實時推送道路上少走彎路---GoEasy推送

實時推送道路上少走彎路---GoEasy推送

之前專案需要做一個推送功能,最開始我沒有想過用第三方推送服務。想著可以用已知技術方式完成,例如定時到伺服器看看是否有新的訊息,有的話,就讀取下來並顯示,但是這種方式很浪費客戶以及伺服器的資源,當然這種方式在我們專案裡是不可取的。再後來我在網上搜了一些,說是可以用web socket實現我的功能,但是我在網上查了一下使用方式,看了一上午一頭霧水。即使我可以一週兩週內用websocket實現我的推送,那我又拿什麼來保證我自己寫的推送程式的到達率和速度呢?維護成本一定也會隨著增加!況且我們也不允許花太多開發成本在這個專案上!

經過上面的一番周折後,我跟專案組提出使用第三方的推送服務,原因很簡單,第三方推送服務可以滿足我們的需求,縮短我們的開發測試維護成本,術業有專攻,它們在推送方面更有優勢,服務質量也有保證!經過幾番對比後,我們最終決定使用了GoEasy推送。它真正的從根本上解決了我們的問題!對於他們的服務質量很滿意,註冊成功後,你可以獲得他們的聯絡方式,問題處理得很及時,不像有些公司的客服,發封郵件好幾天都沒有任何資訊!從而也解決了我們的後顧之憂!

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

下面我將會分四部分來說明一下如何用GoEasy實現實時推送!如果大家有任何問題,可以發我私人郵箱[email protected]

1.      從GoEasy獲取appkey

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

Ø  用註冊好的賬號登入到GoEasy的後臺管理系統,建立您自己應用(application).

Ø  Application建立好之後系統會自動為您生成appkey

系統會生成兩個keys,一個Super key和一個Subscribe key;它們的區別在於前者既可以訂閱又可以推送,但後者只能用於訂閱。

2.      GoEasy實現向特定使用者群推送的原理

知道了他們的推送原理,可以更加方便我們瞭解他們的服務,以及理解我們寫的程式碼。其實原理很簡單,只需要確定哪些使用者需要接收資訊,然後讓這些使用者都訂閱一個相同的channel(頻道)。然後再往這個平臺上推送訊息即可!所有關鍵在於channel,channel一致,則可以接收到資訊,否則收不到!

對於訂閱必須要的資訊有:Appkey, channel

對於推送必須要的資訊有:Appkey, channel, content

3.      用GoEasy實現訂閱(接收)的例項

實現步驟:

1.      引入goeasy.js

2.      建立goeasy例項/物件

3.      用subscribe 函式進行訂閱,然後在回撥函式裡接收資訊即可

實戰:

</pre><pre><p align="left">               <script type="text/javascript"src="https://cdn.goeasy.io/goeasy.js"></script></p><pre>        <script type="text/javascript">
            var goEasy = new GoEasy({appkey: 'your appkey'});
                               goEasy.subscribe({
                        channel: 'your_channel',
                        onMessage: function(message){
                            alert('接收到訊息:'+message.content);//拿到了資訊之後,你可以做你任何想做的事
                        }
              });
         </script>

   有了這幾行程式碼後,只要保證網路暢通的情況下,頁面會自動彈出你從任何平臺上推送的資訊。

4.      用GoEasy實現推送及接收的例項

目前GoEasy支援三種推送方式:Java後臺推送(它們有提供JAVA SDK和 maven遠端倉庫), JS推送,RestAPI推送(有了RestAPI,我們就可以用PHP, .NET, Ruby…來推送資訊了,很方便)


說了這麼多,來我們看一下怎麼用GoEasy的三種方式分別實現推送吧。

4.1. 用GoEasy SDK推送

a.      Java SDK的獲取方式,方式一,直接在goeasy的官網上進行下載;方式二,用maven遠端庫直接匯入到專案中。儘管官網上已經做了相同的說明了,我這裡還是把關鍵點帖出來,方便大家檢視。

  GoEasy遠端maven庫的配置:

         <repository>
              <id>goeasy</id>
              <name>goeasy</name>
              <url>http://maven.goeasy.io/content/repositories/releases/</url>
         </repository>
         …
	<dependency>
               <groupId>io.goeasy</groupId>
               <artifactId>goeasy-sdk</artifactId>
               <version>0.3.1</version>
         </dependency>


需要注意的是: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
<script type="text/javascript"src="https://cdn.goeasy.io/goeasy.js"></script>

b.       例項化Goeasy物件,並用publish函式進行推送
<script type="text/javascript">

       var goEasy = new GoEasy({appkey: 'your appkey'});

               goEasy. publish ({

                    channel: 'your_channel', 

                    message: '用goeasy推送的第二條訊息, 棒極了!'

       });

 </script>


4.3. 用RestAPI進行推送
URL: https://goeasy.io/goeasy/publish
Method: Post
引數:appkey, channel, content
快速入門:https://goeasy.io/www/started.jsp
文件下載:https://goeasy.io/www/docs.jsp

相關推薦

實時道路走彎路---GoEasy

之前專案需要做一個推送功能,最開始我沒有想過用第三方推送服務。想著可以用已知技術方式完成,例如定時到伺服器看看是否有新的訊息,有的話,就讀取下來並顯示,但是這種方式很浪費客戶以及伺服器的資源,當然這種方式在我們專案裡是不可取的。再後來我在網上搜了一些,說是可以用web so

把iPad的視頻到大麥盒子去

互聯 src opera 電視節目 wid eight 等等 推送 簡單 把iPad上的視頻推送到大麥盒子去 最近因為升級家裏的寬帶,服務商送了一個大麥盒子給我。 大麥盒子,就是一個網絡機頂盒,用它可以通過互聯網收看電視劇、電影、電視節目、音樂等等。除了它自身帶

伺服器實時通知客戶端方案,伺服器傳送/事件方案(2)server event,典型例子,可以用作股票、新聞資訊

server event是html5規範的一部分,它相比websocket使用起來更簡單,對伺服器的改動也最小 前端html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&

伺服器實時通知客戶端方案,伺服器傳送/事件方案(1)websocket

服務端 @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter(){ return new ServerEndpointEx

極光訊息伺服器端開發實現

以前一直使用的極光的手動輸入推送內容然後推送到客戶端,今天遇到了推送頻率比較高且比較有規律的內容,比如事實天氣。這樣就需要用我們自己的伺服器來自動生成推送內容了。 可以看到,上面兩句話很醒目,我們看看它封裝的REST API是個什麼東西,再點進去看看 上面兩句話讀了一

在apiCloud如何使用極光(ajpush)功能

首先在極光推送推送官網,繫結app專案。 安卓只需要繫結應用包名,ios需要生成推送證書做繫結。具體極光推送官網有詳細步驟。在繫結專案後,會生成AppKey和Master Secret 完成上面的步驟,極光官網的操作就結束了。 下面進行apiCloud的操作:首先,新增

送給在PHP道路迷茫的你

聚會 嘗試 調用 pytho 興趣 這一 api接口 是我 sql語句 第一次聽說PHP是一次同學聚會上,來自於化工學院的我,只在大一的基礎課上學過一點C語言,倒是聽到這個新名詞卻各位感興趣,回去搜查一番資料了解到,php到底是什麽。當時剛好工作不是太順利,便決定開始自學這

快速學習C語言途徑,讓你走彎路

串處理 毫無 深入 中國人 sql 以及 ubi 思維 思路   1.標準C語言能幹什麽?   坦白講,在今天軟件已經發展了半個多世紀,單純的C語言什麽都幹不了。標準C語言庫只提供了一些通用的邏輯運算方法以及字符串處理,當然字符串在C語言看來也是一種操作內存的方法,所以單純

在錯誤的道路停下來就是前進

學技術 最好 進步 get 堅持 框架 沒有 整理 感覺 今天 也是一個小小的轉折點吧。記錄一下 本來就該實習了,但自己心裏一點譜沒有,因為我覺得就我學的那點技術根本不能支撐我找到一個心儀的工作。 我想靜下來好好整理自己學的東西,學習學習自己還欠缺的技術,但周圍的人都在催促

基於Jquery插件Uploadify實現實時顯示進度條傳圖片

準備 深入學習 pla 回調 true bar put and 分割 網址:http://www.jb51.net/article/83811.htm 這篇文章主要介紹了基於Jquery插件Uploadify實現實時顯示進度條上傳圖片的相關資料,感興趣的小夥伴們可

論“java程序員的進階路途”如何做到走彎路,多寫正確有意義的代碼。

cto 優化 set 為什麽 偉大的 不同的 量化 不同 自己 首先說明一下我為什麽會去思考這個問題。本人離開學校也有一段時間了,經過了幾場面試幾次臨時抱佛腳還有遇到的種種問題之後,社會告訴了我,如何做到少走彎路?如何讓自己在何時去寫合適的代碼。其實在我看來這

成功道路的絆腳石

裏根 註意 事情 原因 成功路 期望 放松 相信自己 我們 成功是每個人都可以做到的 但是關鍵不是克服什麽,而是有太多的絆腳石阻礙著我們的腳步 第一個是拖延 拖延是懶惰的一種表現,是一種不勤快,不在狀態 也就是心裏根本就沒有想著做事情,而是想著其他的事情 這是導致拖延的根本

C# 調用微信接口傳素材和發圖文消息

context puts out odin app bin utf8 light while using Common;using Newtonsoft.Json.Linq;using System;using System.IO;using System.Net;us

極光_總結_01_Java實現極光

-type blank 經驗 內容 .cn util post org header 一、代碼實現 1.配置類—Env.java package com.ray.jpush.config; /**@desc : 極光推送接入配置 *

PHP開發中需要註意幾點事項,新手走彎路必備知識

clas str2 解釋 lac 提高 serve 註意 客戶端 其它 這篇文章主要介紹了PHP開發需要註意的幾點事項總結,非常詳細,需要的朋友可以參考下。新手多看看避免走彎路。 1.使用內嵌的HTML代碼,而不是PHP的echo語句。 因為PHP是一門嵌入式Web編程語言

Android 能讓你走彎路的幹貨整理

國內 dial studio 不為 司機 理論 藝術探索 img 郭霖 本篇文章已授權為微信公眾號 code小生 發布 前言 學習 Android 也有一段時間了,其中也踩了不少坑,現在回想起來,就會有種感慨:「如果當時有人跟我說這些就好了」,這便是我寫這篇文章的目的。我

史密斯臥:杠鈴史密斯下斜臥斜機臥、平板臥推動作圖解

san 一段 胸部 align 壓力 完成 erl .html 三種 史密斯臥推:杠鈴史密斯下斜臥推、上斜機臥推、平板臥推動作圖解 史密斯臥推(smith press)是固定器械上完成的臥推,對於初級健身者來說,自由臥推(啞鈴臥推、杠鈴臥推)還不能很好地把握平衡性,應該先

如何配置外部郵箱(幫你走彎路)——JEPLUS軟件快速開發平臺

hit p s 查看 microsoft AD size RM watermark 自己 JEPLUS如何配置外部郵箱(幫你少走彎路)大家全知道JEPLUS提供外部遊戲、即可以把自己的郵箱托管到系統中。但是很多用戶經常配置出錯導致這麽好的功

下多的有序排列彈性布局

oob z-index avatar absolut www 版本 模塊 ever result 期望實現有序排列如下: 思路: 用到flex彈性布局(flex-direction:row-reverse; flex-wrap: wrap-reverse)+order屬性

蘋果iCloud信蘋果相冊日歷_日

排名 結束 基督 核武器 中心 找不到 中國 概率 合並 蘋果iCloud推信蘋果相冊日歷推送_日【電薇:132-4684-7730】【Q群682789101】13億中國人竟找不到11個世界級球員?世紀難題有解啦日本富士通發布新型超算“大腦”日本結束本年度“科研捕鯨”:98