用GoEasy推送实现Java实时推送
前段时间客户有个需求他希望他在后台管理页面发布一个消息,所有用这个系统的用户无论在哪个页面都能及时收到他发布的信息,以前对于类似需求在少量 页面接收的前提下,我一般采用ajax定时去服务器pull信息下来,如果有就显示出来,但是这种方式非常消耗客户端的资源,后来我在网上查询到了一个第 三方的免费推送服务-GoEasy push, 它可以满足我的需求,下面是如何用GoEasy进行信息推送及接收:
1. 首先我需要在GoEasy官网上注册一个账号,注册完毕后,我可以自己添加application,application添加完成后,GoEasy会自动帮我生成两个key,一个是Super key, 另一个是Subscribe key。
GoEasy官网:https://goeasy.io
Super key:用于推送或接收
Subscribe key:仅用于接收,不能用来推送信息
这两个key相当于使用GoEasy服务的密码。
2. 在java后台用super key推送客户发布的消息
2.1. 在开始写代码之前,我们需要从GoEasy官网上下载一个jar包并引入到项目中。
2.2. 这里不方便展示我们项目的源码,我将用一个JUnit方法来代替:
public void testPublishMessageInGoEasy(){
GoEasy goEasy = new GoEasy("your super key");
goEasy.publish("your_channel","your message");
}
注意:这里只能用你的super key, “your_channel”--你可以随意命名(最好是有意义的名字),channel非常重要,它决定到底哪些页面需要接收你发的消息。
3. 在jsp页面里接收推送消息,由于客户要求每个用户在任意页面都需要能接收到该消息,我把接收信息的部分的代码放在了main.jsp,所有的页面都引入了这个jsp页面。下面是在main.jsp接收信息的代码:
3.1. 引入goeasy.js
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script>
3.2. 初始化GoEasy对象并订阅channel (订阅的channel必须与推送消息时的channel一致!)
var goeasy = new GoEasy({
appkey: 'your super key or your subscribe key',
});
goeasy.subscribe({
channel: 'your_channel',
onMessage: function (result) {
alert("You hava a new message: " + result.content);
}
});
代码部分就完成了, 你可以先打开一些页面,然后在运行JUnit 测试方法,可以看到所有打开的页面都收到从Junit test里推送出来的消息。
GoEasy对推送,连接,订阅方法提供了一些回调函数,用于满足我们不同的需求,更多的请参照他们的文档(有中英文版本的哈) https://goeasy.io/www/docs.jsp
也希望这篇文章对其他需要做推送的朋友有帮助!
用GoEasy推送实现Java实时推送的更多相关文章
- GoEasy实现web实时推送过程中的自动补发功能
熟悉GoEasy推送的朋友都知道GoEasy推送实现web实时推送并且能够非常准确稳定地将信息推送到客户端.在后台功能中查看接收信息详情时,可有谁注意到有时候在发送记录里有一个红色的R标志?R又代表的 ...
- php 实时推送代码
网站质量不错的网站可以在百度站长平台/数据提交/sitemap栏目下看到实时推送的功能, 目前这个工具是邀请开放, 百度的实时推送的api接口可以实时推送我们新发布的文章, 保证百度在第一时间收录. ...
- JAVA使用百度链接实时推送API提交链接
官网地址:http://data.zz.baidu.com/ 百度推广API的token获取 http://data.zz.baidu.com/site/index 填写完之后会进行验证, 验证完之后 ...
- HTML5 WebSocket 实时推送信息测试demo
测试一下HTML5的websocket功能,实现了客户端→服务器实时推送信息到客户端,包括推送图片: websocket实现MessageInbound类 onTextMessage()/onBina ...
- WebSocket和kafka实现数据实时推送到前端
一. 需求背景 最近新接触一个需求,需要将kafka中的数据实时推送到前端展示.最开始想到的是前端轮询接口数据,但是无法保证轮询的频率和消费的频率完全一致,或造成数据缺失等问题.最终确定用利 ...
- dwr3+spring实现消息实时推送
最近项目要实现一个消息推送的功能,主要就是发送站内信或者系统主动推送消息给当前在线的用户.每次的消息内容保存数据库,方便用户下次登录后也能看到.如果当前用户在线,收到站内信就主动弹出提示.一开始想到的 ...
- GoEasyWeb实时推送
GoEasyWeb实时推送,轻松实现实时消息推送. Web页面订阅(约5行代码),服务器端推送(2行代码)就可以轻松实现,而且在高并发时消息推送稳定. 自己完全可以只花五分钟写出属于自己的第一个实时推 ...
- springboot搭建一个简单的websocket的实时推送应用
说一下实用springboot搭建一个简单的websocket 的实时推送应用 websocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 我们以前用的http协议只能单 ...
- 服务器端实时推送技术之SseEmitter的用法
这是SpringMVC提供的一种技术,可以实现服务端向客户端实时推送数据.用法非常简单,只需要在Controller提供一个接口,创建并返回SseEmitter对象,发送数据可以在另一个接口调用其se ...
随机推荐
- 使用Zbar实现简单的二维码扫描
导入ZBarSDK导入系统库 AVFoundation.framework,CoreMedia.framework,CoreVideo.framework,QuartzCore.framework,l ...
- SharePoint各版本信息
参考网页http://blogs.msdn.com/b/erica/archive/2013/05/30/sharepoint-server-2010-version-reference.aspx
- css模板之 web模板一
效果 <html><head><style type="text/css">div.container{width:100%;margin:0p ...
- 班上有学生若干名,已知每名学生的成绩(整数),求班上所有学生的平均成绩,保留到小数点后两位。同时输出该平均成绩整数部分四舍五入后的数值。 第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的成绩,取值在int范围内。
#include<iostream> #include<iomanip> using namespace std ; int main() { int n; while(cin ...
- MFC CSplitterWnd的用法
用MFC开发一个软件界面中需要拆分多个试图窗口时,使用CSplitterWnd类 CSplitterWnd类主要用在创建一个拆分试图窗口.通常嵌入在框架窗口中(CMainFrame) 创建步骤: 1 ...
- 使用mysqlbinlog工具进行基于位置或时间点的数据恢复
使用mysqlbinlog工具进行基于位置或时间点的恢复 MySQL备份一般采取全备份加日志备份的方式,比如每天执行一次全备份,每小时执行一次二进制日志备份.这样在MySQL Server故障后可以使 ...
- 「北京」京东 JD.COM 招聘中/高级前端工程师
工作职责: 负责前端界面的前端构建,各类交互设计与实现: 前端样式和脚本的模块设计及优化: 协同后台开发人员完成项目: 职位要求: 专科及以上学历,2年以上前端重构与脚本开发经验,计算机或相关专业者优 ...
- SQL Server 对dbcc checkdb的优化
方法 1. 在运行dbcc checkdb前对数据库进行快照(事务是一致的),dbcc 对快照进行检测,dbcc完成后删除快照. 做快照的目的是为了不要让dbcc 申请太多的锁,从这里可以看出dbcc ...
- javascript模式
http://developer.51cto.com/art/201212/372725.htm http://justjavac.com/javascript/2012/12/14/model-vi ...
- 2015第6周三ztree的使用
今天第一次真正在开发中使用了ztree组件,在实践过程体会了从生到熟的乐趣,从开始看不太懂ztree的api到后面熟悉理解其API布局,学习其中的各demo,感觉很不错,简单记录下使用ztree的经验 ...