实时推送道路上少走弯路---GoEasy 推送 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
happybirthday
V2EX    Java

实时推送道路上少走弯路---GoEasy 推送

  •  
  •   happybirthday 2017-01-09 10:56:36 +08:00 3035 次点击
    这是一个创建于 3273 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前项目需要做一个推送功能,最开始我没有想过用第三方推送服务。想着可以用已知技术方式完成,例如定时到服务器看看是否有新的消息,有的话,就读取下来并显示,但是这种方式很浪费客户以及服务器的资源,当然这种方式在我们项目里是不可取的。再后来我在网上搜了一些,说是可以用 web socket 实现我的功能,但是我在网上查了一下使用方式,看了一上午一头雾水。即我可以一周两周内用 websocket 实现我的推送,那我又拿什么来保证我自己写的推送程序的到达率和速度呢?维护成本一定也会随着增加!况且我们也不允许花太多开发成本在这个项目上!

    经过上面的一番周折后,我跟项目组提出使用第三方的推送服务,原因很简单,第三方推送服务可以满足我们的需求,缩短我们的开发测试维护成本,术业有专攻,它们在推送方面更有优势,服务质量也有保证!经过几番对比后,我们最终决定使用了 GoEasy 推送。 它真正的从根本上解决了我们的问题!对于他们的服务质量很满意,注册成功后,你可以获得他们的联系方式,问题处理得很及时,不像有些公司的客服,发封邮件好几天都没有任何信息!从而也解决了我们的后顾之忧!

    写这篇文章的目的很简单,希望其他同行在做实时推送时少走些弯路!好的东西应该分享给更多人!

    下面我将会分四部分来说明一下如何用 GoEasy 实现实时推送!如果大家有任何问题,可以发我私人邮箱 [email protected]

    1.从 GoEasy 获取 appkey

    appkey 是验证用户的有效性的唯一标识。

    a. 注册账号。 GoEasy 官网: https://goeasy.io

    b. 用注册好的账号登录到 GoEasy 的后台管理系统,创建您自己应用( application ).

    c. Application 创建好之后系统会自动为您生成 appkey

    系统会生成两个 keys ,一个 Super key 和一个 Subscribe key ;它们的区别在于前者既可以订阅又可以推送,但后者只能用于订阅。

    2.GoEasy 实现向特定用户群推送的原理

    知道了他们的推送原理,可以更加方便我们了解他们的服务,以及理解我们写的代码。其实原理很简单,只需要确定哪些用户需要接收信息,然后让这些用户都订阅一个相同的 channel (频道)。 然后再往这个平台上推送消息即可!所有关键在于 channel , channel 一致,则可以接收到信息,否则收不到!

    对于订阅必须要的信息有: Appkey, channel

    对于推送必须要的信息有: Appkey, channel, content

    3.用 GoEasy 实现订阅(接收)的实例

    实现步骤:

    a. 引入 goeasy.js

    b. 创建 goeasy 实例 /对象

    c. 用 subscribe 函数进行订阅, 然后在回调函数里接收信息即可

    实战: <script type="text/Javascript" src="&lt;a href=" https:="" <a="" href="http://cdn.goeasy.io" rel="nofollow">cdn.goeasy.io="" goeasy.js"="" rel="nofollow">https://cdn.goeasy.io/goeasy.js"></script>

    <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 SDK 下载链接: http://maven.goeasy.io/service/local/artifact/maven/redirect?r=releases&g=io.goeasy&a=goeasy-sdk&v=LATEST&e=jar

    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="&lt;a href=" https:="" <a="" href="http://cdn.goeasy.io" rel="nofollow">cdn.goeasy.io="" goeasy.js"="" rel="nofollow">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/goeasy/publish?appkey={your_appkey}&channel={your_channel}&cOntent={your_message}

    GoEasy 官网: https://goeasy.io

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

    文档下载: https://goeasy.io/www/docs.jsp

    1 条回复    2017-01-09 19:36:26 +08:00
    444683462
        1
    444683462  
       2017-01-09 19:36:26 +08:00
    虽然明知道是广告 作为老用户 我还是赞一个 确实简单省事
    关于     帮助文档     自助推广系统     博客     < href="/help/api" class="dark" target="_self">API     FAQ     Solana     5161 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 07:42 PVG 15:42 LAX 23:42 JFK 02:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86