GoEasy介绍
http请求短连接,一次请求响应后关闭,而GoEasy建立了客户端与服务器之间的长连接。
goeasy支持服务器到客户端的消息发布,客户端到客户端的消息发布
GoEasy用来做什么
入门
在官网注册一个账号可以免费使用:http://www.goeasy.io/
然后创建免费应用:
开发
1)导入依赖
<!--GoEasy依赖-->
<dependency>
<groupId>io.goeasy</groupId>
<artifactId>goeasy-sdk</artifactId>
<version>0.3.8</version>
</dependency>
<!--Goeasy长连接仓库-->
<repositories>
<repository>
<id>goeasy</id>
<name>goeasy</name>
<url>http://maven.goeasy.io/content/repositories/releases/</url>
</repository>
</repositories>
2)请求以及参数说明
URL:
http(s):///publish
Method:
Post
参数:
参数名字 | 是否必需 | 描述 |
---|---|---|
appkey | 是 | 您的app key |
channel | 是 | 您的目标channel |
content | 是 | 推送的消息内容 |
appkey创建应用时生成,channel由个人定义。
服务器到客户端的消息推送
服务器程序, 将触发代码整合在业务代码中
其中Common key在应用中查看
String jsonString = JSONObject.toJSONString(userDto); GoEasy goEasy = new GoEasy("http://rest-hangzhou.goeasy.io","Common key"); System.out.println(jsonString); goEasy.publish("userana",jsonString);
前端
<script type="text/javascript">
//GoEasy仅做监听,不做数据加载,触发时机为--用户最近的活跃度统计Controller触发
var goEasy = new GoEasy({
appkey: 'Common key'
});
goEasy.subscribe({
channel: "",
onMessage: function (message) {
//console.log(message);
var res = $.parseJSON(message.content);
//console.log(res.data);
//console.log(message.content.data);
myChart.setOption({
series: [{
name: '活跃用户',
data: res.data
}]
});
}
});
</script>
注意:请不要将goeasy.js下载到本地,GoEasy动态为不同浏览器和操作系统提供不同goeasy.js,使用下载到本地的goeasy.js,将会导致某些用户不能发送和接收消息。
客户端与客户端的通信
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>聊天室</title> <link href="css/base.css" rel="stylesheet" type="text/css"/> <link href="css/index.css" rel="stylesheet" type="text/css"/> <link href="css/index_iphone.css" rel="stylesheet" type="text/css"/> <link href="css/index_1000.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="http://cdn-hangzhou.goeasy.io/goeasy.js"></script> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> var goEasy = new GoEasy({ appkey: "xxxxxxxxxxxxxx" }); //订阅消息 goEasy.subscribe({ channel: "messageChannel", onMessage: function (message) { //id选择器span显示消息 console.log(message); $("#messageLoad").text(message.content); } }); //发送消息 function publishMessage() { var messageContent = $("#publishMessages").val(); goEasy.publish({ channel: "messageChannel", message: messageContent }); } </script> </head> <body> <div class="demos chatdiv"> <div class="demos_con"> <div id="chatScroll" class="chat J_chat"> <div id="subscribeMessages" class="chat_auto J_chat_auto"> <span id="messageLoad"></span> </div> </div> <div class="demos_condsend clearfix"> <input class="demos_condsend_1 J_demos_condsend_1 fl" id="publishMessages" type="text"/> <button class="demos_condsend_2 fr" onclick="publishMessage();">发送</button> </div> </div> </div> <div class="partfw J_partfw"> <div class="partf"> <p class="partfp">© 2015-2018 DHG, All Rights Reserved Em <span style="display: none;">e</span>mail:<span style="display: none;">m</span> mzc <span style="display: none;">1</span>1997@<span style="display: none;">g</span>mai <span style="display: none;">l</span>.com</p> </div> </div> </body> </html>
测试,两个浏览器打开同一个页面 对话。
转载于:https://www.cnblogs.com/mzc1997/p/10206930.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10487.html