之前项目需要做一个推送功能,最开始我没有想过用第三方推送服务。想着可以用已知技术方式完成,例如定时到服务器看看是否有新的消息,有的话,就读取下来并显示,但是这种方式很浪费客户以及服务器的资源,当然这种方式在我们项目里是不可取的。再后来我在网上搜了一些,说是可以用web socket实现我的功能,但是我在网上查了一下使用方式,看了一上午一头雾水。即使我可以一周两周内用websocket实现我的推送,那我又拿什么来保证我自己写的推送程序的到达率和速度呢?维护成本一定也会随着增加!况且我们也不允许花太多开发成本在这个项目上!
经过上面的一番周折后,我跟项目组提出使用第三方的推送服务,原因很简单,第三方推送服务可以满足我们的需求,缩短我们的开发测试维护成本,术业有专攻,它们在推送方面更有优势,服务质量也有保证!经过几番对比后,我们最终决定使用了GoEasy推送。 它真正的从根本上解决了我们的问题!对于他们的服务质量很满意,注册成功后,你可以获得他们的联系方式,问题处理得很及时,不像有些公司的客服,发封邮件好几天都没有任何信息!从而也解决了我们的后顾之忧!
写这篇文章的目的很简单,希望其他同行在做实时推送时少走些弯路!好的东西应该分享给更多人!
下面我将会分四部分来说明一下如何用GoEasy实现实时推送!如果大家有任何问题,可以发我私人邮箱 JAVA Web实时消息后台服务器推送技术
1. 从GoEasy获取appkey
appkey是验证用户的有效性的唯一标识。
>> 注册账号。 GoEasy官网:https://goeasy.io
>> 用注册好的账号登录到GoEasy的后台管理系统,创建您自己应用(application).
>> 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="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 slf4j-api.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/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
相关推荐
Java实现GoEasy实时推送demo、JAVA Web实时消息后台服务器推送技术
1.启动项目:访问http://localhost:8080/goeasy/ 2.执行main方法,页面弹出弹窗表示成功.
NULL 博文链接:https://fengziit.iteye.com/blog/2334796
最近使用GoEasy在web端进行实时信息推送,代码极其简单,记录一下,供大家参考
goeasy-0.1.jar
基于node的前端websocket简单实时推送数据基本用法 含有goEasy基础版本
为了测试效果,大家可以多打开几个页面然后在推...另外大家也可以打开goeasy 官网上的chat demo页面来查看推送结果。(资料中的appkey用的是goeasy demo的key,在后续实现中,大家需要通过注册来获得属于自己的appkey)
本篇文章主要介绍了PHP实现Web实时消息后台服务器推送技术,这里整理了详细的代码,有需要的小伙伴可以参考下。
越来越多的项目需要用到实时消息的推送与接收,我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持websocket 和polling两种连接方式,从而...
详细的GoEasy推送例子,里面有说明文档和代码实现例子,很容易实现推送功能。
goeasy开发相关jar包 简单demo
GoEasy上架DCloud Uniapp插件市场已经有一个多月了,收到很多Uniapp开发人员的赞扬和好评,小编在此隔着屏幕向大家鞠躬,小编和GoEasy团队会继续努力,持续为Uniapp开发者提供最简单且优雅的API,稳定高速可靠的即时...
goeasy
项目中测试通过的实用jar包,消息即时提醒功能用到的工具类包
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务 实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、 历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...
GoEasy音视频实时通话(GoEasy Real-Time Communication,GRTC)旨在协助开发者轻松实现语音、视频实时通话功能,全面支持一对一和多人通话。 目前,GRTC仅支持Uniapp开发的APP中集成,尚不支持小程序、Web页面,...
私聊、群聊、会话列表,文字、表情,图片,语音,视频消息 支持发送自定义业务消息,比如处方,订单,红包,地理位置等 手机通知栏提醒,厂商通道支持:iOS,谷歌FCM,华为,小米,VIVO,OPPO,魅族 ...
GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,支持一对一单聊、群聊、会话列表、上下线提醒、历史消息、离线消息,支持发送图片、视频、语音,更多功能可以下载下来...