用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 ...
随机推荐
- 将mysql服务加入到系统服务中 服务器配置 注销时不会关闭mysql
将mysql加入系统服务中: 或者在cmd中输入:mysql安装路径\mysql\bin\mydqld.exe --install mysql --defaults-file="mysql安 ...
- 【SQL】大杂烩
--------------------------------- 索引 --------------------------------- 语法: CREATE [索引类型] INDEX 索引名称 ...
- 为 IIS 7.0 配置 <system.webServer>
Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...
- 【常用小命令】解决windows下有些文件文件名识别不了导致删除不了的问题
在百度上找的解决方案哈,只为自己存档一份. 因为发现现在从csdn上下载的文件都是“.pdf_”格式,下载2个文件,将一个文件格式改成 “.pdf”,另一个文件就扔回不了回收站了, 所以没有办法就找各 ...
- Reverse Words in a String (JAVA)
Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...
- 2014年1月24日 Oracle 连接查询与子查询
1.乘积连接: 源表.源数据交叉链接,结果集数量为源数据之间的乘积 2.相等链接: 通过where关联几个数据源中的某一字段进行链接 3.自链接 自己链接自己 SSF A a1, A a2 ...
- 转载 Eclipse下的SSH开发例子
前言 确实好久没有写过了,一直以来把写博文当作自己学习的总结,当作做过的笔记,随时都可以拿出来看看.不过最近习惯了用OneNote和印象笔记,所以就很少在论坛写博文.但是偶尔看到几篇被转载了,也小小的 ...
- 关于cookie的使用
cookie的属性 domain:域名,即cookie所能使用的范围,当然当前域下可以在当前域下cookie,还有一个就是该域名的父级域名(子级的域名下是可以访问父级域名下的cookie,父级域名是不 ...
- 初识HTML5
1, 新增canvas标签,允许通过JS在客户端完成2D绘图 2, 新增Video/Audio标签,能取代flash实现媒体播放 3, 新增本地存储功能:localStorage/sessionSto ...
- springmvc+mybatis如何分层
通常情况下,我们之间调用mapper,spring会为我们注入其实现,很方便,mybatis也提供了一个generator供我们生成bean.dao接口等.但是总有一种感觉叫不爽,感觉除了bean和m ...