mirror of https://gitee.com/stylefeng/guns
更新WebSocket实现
parent
6c0786c4aa
commit
606ea891ea
|
@ -51,8 +51,8 @@ layui.define(['jquery', 'layer'], function (exports) {
|
||||||
try {
|
try {
|
||||||
// 发送心跳检测
|
// 发送心跳检测
|
||||||
let heartMsg = {
|
let heartMsg = {
|
||||||
"type": "299999",
|
"clientMsgType": "299999",
|
||||||
"data": new Date().getMilliseconds()
|
"data": new Date().getTime()
|
||||||
};
|
};
|
||||||
_self.send(JSON.stringify(heartMsg))
|
_self.send(JSON.stringify(heartMsg))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -45,11 +45,8 @@
|
||||||
<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
|
|
||||||
|
|
||||||
// 全局消息类型声明
|
// 全局消息类型声明
|
||||||
const WEB_SOCKET_MSG_TYPE = {
|
window.WEB_SOCKET_MSG_TYPE = {
|
||||||
SERVER: {
|
SERVER: {
|
||||||
SYS_NOTICE_MSG_TYPE: "100001"
|
SYS_NOTICE_MSG_TYPE: "100001"
|
||||||
},
|
},
|
||||||
|
@ -59,15 +56,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// 全局消息类型和回调函数维护中心
|
// 全局消息类型和回调函数维护中心
|
||||||
const msgTypeCallBackMap = new Map()
|
window.msgTypeCallBackMap = new Map()
|
||||||
|
|
||||||
// 新增一个回调
|
// 新增一个回调
|
||||||
function insertCallback(msgType, func) {
|
window.insertCallback = (msgType, func) => {
|
||||||
msgTypeCallBackMap.set(msgType, func)
|
msgTypeCallBackMap.set(msgType, func)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除一个回调
|
// 删除一个回调
|
||||||
function deleteCallback(msgType) {
|
window.deleteCallback = (msgType) => {
|
||||||
msgTypeCallBackMap.delete(msgType)
|
msgTypeCallBackMap.delete(msgType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,47 +125,47 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
// 全局WebSocket加载
|
// 全局WebSocket加载
|
||||||
wsInst = ws.render({
|
window.wsInst = ws.render({
|
||||||
wsUrl: Feng.wsUrl, //WebSocket的地址
|
wsUrl: Feng.wsUrl, //WebSocket的地址
|
||||||
connectErr: function (event) {
|
connectErr: (event) => {
|
||||||
console.log(event)
|
console.log(event)
|
||||||
//如果不支持websocket 回调
|
//如果不支持websocket 回调
|
||||||
},
|
},
|
||||||
onWsError: function (event) {
|
onWsError: (event) => {
|
||||||
//发生连接错误回调
|
//发生连接错误回调
|
||||||
},
|
},
|
||||||
onWsOpen: function (event) {
|
onWsOpen: (event) => {
|
||||||
// 绑定用户
|
// 绑定用户
|
||||||
let initMsg = {
|
let initMsg = {
|
||||||
"type": WEB_SOCKET_MSG_TYPE.CLIENT.USER_ADD_MSG_TYPE,
|
"clientMsgType": WEB_SOCKET_MSG_TYPE.CLIENT.USER_ADD_MSG_TYPE,
|
||||||
"formUserId": Feng.userId,
|
"formUserId": Feng.userId,
|
||||||
"data": WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE
|
"data": WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE
|
||||||
};
|
};
|
||||||
wsInst.send(JSON.stringify(initMsg));
|
wsInst.send(JSON.stringify(initMsg));
|
||||||
},
|
},
|
||||||
onWsMessage: function (event) {
|
onWsMessage: (event) => {
|
||||||
//服务器发送消息回调
|
//服务器发送消息回调
|
||||||
let data = event.data;
|
let data = event.data;
|
||||||
try {
|
try {
|
||||||
let originalData = JSON.parse(data)
|
let originalData = JSON.parse(data)
|
||||||
let func = msgTypeCallBackMap.get(originalData.type);
|
let func = msgTypeCallBackMap.get(originalData.serverMsgType);
|
||||||
if (func) {
|
if (func) {
|
||||||
eval(func(originalData));
|
eval(func(originalData));
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onWsClose: function (event) {
|
onWsClose: (event) => {
|
||||||
//关闭连接回调
|
//关闭连接回调
|
||||||
},
|
},
|
||||||
|
|
||||||
wsSend: function (event) {
|
wsSend: (event) => {
|
||||||
//发送成功后的回调
|
//发送成功后的回调
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
// 注册系统消息监听
|
// 注册系统消息监听
|
||||||
insertCallback(WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE, function (massage) {
|
window.insertCallback(window.WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE, (massage) => {
|
||||||
notice.info({
|
notice.info({
|
||||||
title: '[' + massage.data.businessTypeValue + ']' + massage.data.messageTitle,
|
title: '[' + massage.data.businessTypeValue + ']' + massage.data.messageTitle,
|
||||||
message: massage.data.messageContent,
|
message: massage.data.messageContent,
|
||||||
|
|
Loading…
Reference in New Issue