mirror of https://gitee.com/stylefeng/guns
修改WebSocket实现
parent
a83e9f681a
commit
0f84522c9b
7
pom.xml
7
pom.xml
|
@ -135,6 +135,13 @@
|
||||||
<version>${roses.kernel.version}</version>
|
<version>${roses.kernel.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--Socket模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>socket-spring-boot-starter</artifactId>
|
||||||
|
<version>${roses.kernel.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--wrapper工具-->
|
<!--wrapper工具-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.stylefeng.roses</groupId>
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
|
|
@ -2,6 +2,11 @@ server:
|
||||||
port: 8080
|
port: 8080
|
||||||
max-http-header-size: 10240
|
max-http-header-size: 10240
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
root: error
|
||||||
|
cn.stylefeng: debug
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
application:
|
application:
|
||||||
name: guns
|
name: guns
|
||||||
|
@ -54,10 +59,6 @@ mybatis-plus:
|
||||||
id-type: assign_id
|
id-type: assign_id
|
||||||
table-underline: true
|
table-underline: true
|
||||||
|
|
||||||
# 是否开启websocket推送消息
|
|
||||||
web-socket:
|
|
||||||
open: true
|
|
||||||
|
|
||||||
# 单点登录开关
|
# 单点登录开关
|
||||||
sso:
|
sso:
|
||||||
openFlag: false
|
openFlag: false
|
||||||
|
|
|
@ -50,7 +50,11 @@ layui.define(['jquery', 'layer'], function (exports) {
|
||||||
_self.heartCheckHandler = setTimeout(function () {
|
_self.heartCheckHandler = setTimeout(function () {
|
||||||
try {
|
try {
|
||||||
// 发送心跳检测
|
// 发送心跳检测
|
||||||
_self.send("&")
|
let heartMsg = {
|
||||||
|
"type": "299999",
|
||||||
|
"data": new Date().getMilliseconds()
|
||||||
|
};
|
||||||
|
_self.send(JSON.stringify(heartMsg))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
(param.connectErr || emptyFun)(e);
|
(param.connectErr || emptyFun)(e);
|
||||||
_self.lockReconnect = false;
|
_self.lockReconnect = false;
|
||||||
|
|
|
@ -37,14 +37,40 @@
|
||||||
var Feng = {
|
var Feng = {
|
||||||
ctxPath: "${ctxPath}",
|
ctxPath: "${ctxPath}",
|
||||||
version: '${constants.getReleaseVersion()}',
|
version: '${constants.getReleaseVersion()}',
|
||||||
wsUrl: '${wsUrl}'
|
wsUrl: '${wsUrl}',
|
||||||
|
userId: '${userId}'
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js?v=${constants.getReleaseVersion()}"></script>
|
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js?v=${constants.getReleaseVersion()}"></script>
|
||||||
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=${constants.getReleaseVersion()}"></script>
|
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=${constants.getReleaseVersion()}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// WebSocket实例
|
||||||
var wsInst = null
|
var wsInst = null
|
||||||
|
|
||||||
|
// 全局消息类型声明
|
||||||
|
const WEB_SOCKET_MSG_TYPE = {
|
||||||
|
SERVER: {
|
||||||
|
SYS_NOTICE_MSG_TYPE: "100001"
|
||||||
|
},
|
||||||
|
CLIENT: {
|
||||||
|
USER_ADD_MSG_TYPE: "200001"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全局消息类型和回调函数维护中心
|
||||||
|
const msgTypeCallBackMap = new Map()
|
||||||
|
|
||||||
|
// 新增一个回调
|
||||||
|
function insertCallback(msgType, func) {
|
||||||
|
msgTypeCallBackMap.set(msgType, func)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除一个回调
|
||||||
|
function deleteCallback(msgType) {
|
||||||
|
msgTypeCallBackMap.delete(msgType)
|
||||||
|
}
|
||||||
|
|
||||||
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice', 'i18n'], function () {
|
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice', 'i18n'], function () {
|
||||||
var $ = layui.jquery;
|
var $ = layui.jquery;
|
||||||
var layer = layui.layer;
|
var layer = layui.layer;
|
||||||
|
@ -100,6 +126,8 @@
|
||||||
});
|
});
|
||||||
request.start();
|
request.start();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 全局WebSocket加载
|
||||||
wsInst = ws.render({
|
wsInst = ws.render({
|
||||||
wsUrl: Feng.wsUrl, //WebSocket的地址
|
wsUrl: Feng.wsUrl, //WebSocket的地址
|
||||||
connectErr: function (event) {
|
connectErr: function (event) {
|
||||||
|
@ -110,21 +138,23 @@
|
||||||
//发生连接错误回调
|
//发生连接错误回调
|
||||||
},
|
},
|
||||||
onWsOpen: function (event) {
|
onWsOpen: function (event) {
|
||||||
//连接成功回调
|
// 绑定用户
|
||||||
console.log("Socket 已打开");
|
let initMsg = {
|
||||||
wsInst.send("消息发送测试(From Client)");
|
"type": WEB_SOCKET_MSG_TYPE.CLIENT.USER_ADD_MSG_TYPE,
|
||||||
|
"formUserId": Feng.userId,
|
||||||
|
"data": WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE
|
||||||
|
};
|
||||||
|
wsInst.send(JSON.stringify(initMsg));
|
||||||
},
|
},
|
||||||
onWsMessage: function (event) {
|
onWsMessage: function (event) {
|
||||||
//服务器发送消息回调
|
//服务器发送消息回调
|
||||||
let data = event.data;
|
let data = event.data;
|
||||||
try {
|
try {
|
||||||
let msg = JSON.parse(data)
|
let originalData = JSON.parse(data)
|
||||||
notice.info({
|
let func = msgTypeCallBackMap.get(originalData.type);
|
||||||
title: '[' + msg.businessTypeValue + ']' + msg.messageTitle,
|
if (func) {
|
||||||
message: msg.messageContent,
|
eval(func(originalData));
|
||||||
timeout: false
|
}
|
||||||
});
|
|
||||||
$('#messageDot').show();
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -135,15 +165,19 @@
|
||||||
wsSend: function (event) {
|
wsSend: function (event) {
|
||||||
//发送成功后的回调
|
//发送成功后的回调
|
||||||
},
|
},
|
||||||
|
|
||||||
})
|
})
|
||||||
});
|
|
||||||
|
|
||||||
window.unload = function () {
|
// 注册系统消息监听
|
||||||
if (wsInst) {
|
insertCallback(WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE, function (massage) {
|
||||||
wsInst.close();
|
notice.info({
|
||||||
}
|
title: '[' + massage.data.businessTypeValue + ']' + massage.data.messageTitle,
|
||||||
};
|
message: massage.data.messageContent,
|
||||||
|
timeout: false
|
||||||
|
});
|
||||||
|
$('#messageDot').show();
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue