前段时间用goeasy实现了实时推送功能,这里写个工作笔记方便以后查看,也希望可以帮到其他需要实时推送的朋友。
Goeasy是第三方推送服务。如果自己使用原生态的socket.io, websocket进行开发的话,需要花时间研究如何实现,且不说把这两种技术运用的好不好,单是测试就够我忙了,你要进行压力测试、性能测试、功能测试,总的来讲自己开发成本周期长、维护成本高,所以我选择了第三方推送服务。之后我对比了几个做推送的第三方产品,个人感觉goeasy推送更稳定,推送速度快,代码简单易懂上手快,所以最后我推荐了goeasy给我的领导。GoEasy官网:goeasy.io
推送的原理:GoEasy的实现原理很简单,就是推送消息的一端只负责推送,而需要接收的页面需要预先订阅。订阅什么呢?订阅channel。往某个channel上推送消息,客户端就订阅相同的channel,这样就可以确保准确接收。通过channel我们可以自己指定哪些页面或哪些用户可以接收到从这个channel上推送出来的消息。
如何实现web实时推送
开发语言:Java
1. 获取goeasy的appkey
Appkey是使用goeasy推送的“钥匙”。在goeasy官网上注册好之后创建一个free application, 创建好之后你就可以看到一个application有两个key.一个是supper key, 另一个是subscribe key。这个两个key的区别是:supper key既可以用于推送也可以用于订阅; 但subscribe key只可以用于订阅,它没有推送信息的权限。处于安全考虑,我用supper key来进行推送消息,用subscribe key来订阅消息。
2. web客户端订阅channel
1) 引入goeasy.js
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script>
2) 连接goeasy
<script type="text/javascript">
if(typeof GoEasy !== 'undefined'){
var goEasy = new GoEasy({
appkey: 'appkey',
onConnected:function(){
console.log("Connect to GoEasy success.");
} ,
onDisconnected:function(){
console.log("Disconnect to GoEasy server.");
} ,
onConnectFailed:function(error){
console.log("Connect to GoEasy failed, error code: "+ error.code+" Error message: "+ error.content);
}
});
}
</script>
3) 订阅channel
function subscribe(){
goEasy.subscribe({
channel: 'demo_channel',
onMessage: function(message){
//当有消息推送到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
<repositories>
...
<repository>
<id>goeasy</id>
<name>goeasy</name>
<url>http://maven.goeasy.io/content/repositories/releases/</url>
</repository>
</repositories>
<dependencies>
...
<dependency>
<groupId>io.goeasy</groupId>
<artifactId>goeasy-sdk</artifactId>
<version>0.3.1</version>
</dependency>
</dependencies>
这里需要注意的是,使用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
如果你用的是其他开发语言, goeasy还提供了RestfulAPI在后台来推送消息。具体使用请参照goeasy 官网的参数使用及说明。
所有推送的消息以及接收情况,可以登录到goeasy后台进行查看。考虑到信息的安全性,大家可以根据自身需求来决定是否在推送前对信息加密。
感兴趣的朋友可以先到https://goeasy.io上先看看demo页面的效果。好了,希望这篇文章对大家有帮助。共勉……
相关推荐
通过以上介绍,我们可以看到GoEasy作为一款强大的Web实时消息后台服务器推送技术,它为开发者提供了高效、便捷的解决方案。无论你是新手还是经验丰富的开发者,GoEasy都能帮助你轻松地实现实时交互功能,提升用户...
GoEasy消息推送是一种高效、便捷的实时通信服务,主要用于实现Web端和手机端的消息推送功能。在现代互联网应用中,实现实时交互是提升用户体验的关键因素之一,而GoEasy则提供了一个简单易用的解决方案。 GoEasy的...
总的来说,Java实现GoEasy实时推送Demo是一个很好的学习资源,可以帮助开发者快速掌握如何在Java Web项目中实现实时消息推送,提升用户体验。通过学习这个Demo,不仅可以熟悉GoEasy的使用,还能进一步理解Websocket...
本文将围绕GoEasy推送服务,深入讲解如何利用Java、JavaScript等语言实现推送功能,以及如何理解和使用提供的示例文档。 首先,让我们了解GoEasy的基本概念。GoEasy是一个基于HTTP/HTTPS协议的云服务,支持...
【标题】:“Uniapp使用GoEasy实现websocket实时通讯” 【描述】:本文主要探讨了如何在Uniapp项目中集成GoEasy服务,以实现基于websocket的实时通讯功能。Uniapp作为一个跨平台的开发框架,允许开发者编写一次代码...
【服务端推送到客户端-goeasy】是一种技术实现方式,主要用于实现实时通信,使得服务器可以主动将数据发送到客户端,而不仅仅局限于客户端发起请求后服务器响应的传统HTTP模式。GoEasy是一个基于WebSocket协议的实时...
越来越多的项目需要用到实时消息的推送与接收,我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持websocket 和polling两种连接方式,从而...
【JAVA Web实时消息后台服务器推送技术---GoEasy】是一种用于实现Web实时消息推送的技术,尤其适合PHP开发者。在现代Web应用程序中,实时消息传递成为必不可少的功能,例如在线聊天、股票更新、通知提醒等。GoEasy...
3. **消息发送**:当用户在客服界面输入消息时,应用需要将消息发送到GoEasy服务器,服务器再将消息推送给客服端。这通常涉及到API的调用,如`goeasy.publish()`,并携带用户ID和消息内容。 4. **消息接收**:客服...
整合两者,我们可以便捷地在`Spring`应用中实现高效的实时消息推送。 1. **GoEasy介绍** `GoEasy`是基于HTTP长连接的实时通讯云服务平台,它提供了简单易用的API接口,支持Web、Android、iOS等多平台。其主要特点...
标题“WebSocket实时推送数据”指的是使用WebSocket技术实现实时数据从服务器推送到客户端的功能。在这个场景中,我们看到描述提到了基于Node.js的前端实现,这表明我们将讨论如何在Node.js环境中搭建WebSocket服务...
GoEasy是一个基于WebSocket协议的云推送服务,它简化了在Web和移动应用中实现实时通信的复杂性。开发者可以通过简单的API调用来实现服务器与客户端之间的双向通信,无需关注底层网络协议的实现。 2. **WebSocket...
4. **微信小程序集成**:考虑到微信小程序的广泛使用,GoEasy客服源码特别优化了与微信小程序的接口,使得开发者可以轻松配置,实现用户离线时通过微信推送消息的功能。这增强了用户体验,确保用户不会错过任何重要...
GoEasy小程序即时通讯源码是用于构建实时通信功能的小程序应用开发工具,它提供了一整套解决方案,使得开发者能够快速地在微信小程序中实现聊天、群聊、消息推送等功能。这个压缩包文件“GoEasyDemo-wxapp-v1.1.0”...
WebSocket是Web应用中实现双向通信的一种技术,它允许服务器主动向客户端推送数据,极大地提高了实时性,被广泛应用于在线聊天、股票更新、游戏等场景。本项目是一个基于Java 1.6和WebSocket的即时聊天Demo,它利用...
这是一个使用了现代技术栈构建的即时...此外,还可以了解到如何设计即时通讯系统的关键功能,如实时消息推送、用户身份验证、负载均衡等。对于想要提升微服务架构和前端开发能力的开发者来说,这是一个极好的学习资源。