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)😕/
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>
測試,兩個瀏覽器打開同一個頁面 對話。