GoEasy的使用

it2022-05-06  4

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 keychannel是您的目标channelcontent是推送的消息内容

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


最新回复(0)