项目中需要消息推送,又想降低开发成本。Java服务器端推送,Web端接收推送信息。
具体需求:
需求一:系统框架实现全局异常捕获并录入日志表,实现实时推送消息到客户端页面展示。
需求二:系统管理员在后台管理系统页面发布一个消息,所有用这个系统的用户无论在哪个页面都能及时收到他发布的消息。
技术实现:
一个第三方的免费推送服务 GoEasy , 它可以满足我的需求,下面是如何用GoEasy进行信息推送及接收。
备注:
免费一年使用
最大可并发连接数:60
套餐消息总量:100,000
步骤一:
1、免费注册一个GoEasy账号。
2、登录您的账号,创建一个“应用”,获得应用的 app key。
步骤二:
1、添加镜像。
<repository> <id>goeasy</id> <name>goeasy</name> <url>http://maven.goeasy.io/content/repositories/releases/</url> </repository>
2、添加依赖。
<dependency> <groupId>io.goeasy</groupId> <artifactId>goeasy-sdk</artifactId> <version>0.3.9</version> </dependency>
步骤三:
1、服务器端发送( 发布)消息。
GoEasy goEasy = new GoEasy("GoEasy的应用列表中查找", "Common key 在应用列表中查找");
goEasy.publish("log_channel", "Hello world!", new PublishListener() { @Override public void onSuccess() { System.out.print("消息发布成功。"); } @Override public void onFailed(GoEasyError error) { System.out.print("消息发布失败, 错误编码:" + error.getCode() + " 错误信息: " + error.getContent()); } });
步骤四:
1、客户端接收消息( 订阅Channel)。
<script type="text/javascript" src="http://cdn.goeasy.io/goeasy.js"></script>
<script type="text/javascript"> $(document).ready(function () { var goEasy = new GoEasy({ appkey: "Common key 在应用列表中查找", onConnected: function () { alert("成功连接GoEasy。"); }, onDisconnected: function () { alert("与GoEasy连接断开。"); }, onConnectFailed: function (error) { alert("与GoEasy连接失败,错误编码:" + error.code + "错误信息:" + error.content); } }); goEasy.subscribe({ channel: "log_channel", onMessage: function (message) { alert("您有新消息:channel:" + message.channel + " 内容:" + message.content); }, onSuccess: function () { alert("Channel订阅成功。"); }, onFailed: function (error) { alert("Channel订阅失败, 错误编码:" + error.code + " 错误信息:" + error.content) } }); }); </script>