emis-app/common/messageNotice/socket.js

89 lines
2.1 KiB
JavaScript
Raw Normal View History

2024-12-29 07:16:57 +00:00
import { curEnvConf } from "@/common/env"
import { getCommonReqData } from "@/common/manageServer"
import { showToast, playAudio } from "@/common/untool"
import { audioTypeEnum } from "@/common/enum"
2024-12-29 09:35:07 +00:00
export const currentSocketTask = {
instance: null
}
2024-12-29 07:16:57 +00:00
export const createSocketMessage = ({ userInfo })=> {
2024-12-29 09:35:07 +00:00
const reConnectSock = ()=> {
console.log("reConnectSock 重试连接=====")
createSocketMessage({ userInfo })
}
2024-12-29 07:16:57 +00:00
const url = curEnvConf.socketHost
let comReqData = getCommonReqData()
const socketTask = uni.connectSocket({
url: `${url}/ws/${userInfo?.userId}`,
// method: 'GET',
header: {
...comReqData.header,
},
success(res){
},
fail(err) {
2024-12-29 09:35:07 +00:00
console.error("connectSocket fail====", err)
setTimeout(reConnectSock, 3000)
2024-12-29 07:16:57 +00:00
}
})
2024-12-29 09:35:07 +00:00
currentSocketTask.instance = socketTask
2024-12-29 07:16:57 +00:00
socketTask.onError((err)=> {
console.log('socketTask.onError: ', err);
})
2024-12-29 09:35:07 +00:00
socketTask.onClose((res = {})=> {
// socketTask.connectSocket
2024-12-29 07:16:57 +00:00
console.log('socketTask.onClose: ', res);
2024-12-29 09:35:07 +00:00
// 正常关闭 不需重连
if(res.code != 1000) {
// 重连
setTimeout(reConnectSock, 3000)
}
// switch (res.code+''){
// case '1006':
// setTimeout(reConnectSock, 3000)
// break;
// default:
// break;
// }
2024-12-29 07:16:57 +00:00
})
socketTask.onOpen((res)=> {
console.log('socketTask.onOpen: ', res);
2024-12-29 09:35:07 +00:00
// TODO, 测试消息通知效果
createSysMessage({
"clickPath": "/123123/123",
"uid": 357,
"title": "测试消息c2",
"noticeId": 25,
"content": "测试消息内容c2",
})
2024-12-29 07:16:57 +00:00
})
socketTask.onMessage(function (res) {
console.log('onSocketMessage 收到服务器内容:', res?.data);
2024-12-29 09:35:07 +00:00
try{
let data = JSON.parse(res.data)
createSysMessage(data)
}catch(e){
console.error("")
}
2024-12-29 07:16:57 +00:00
});
2024-12-29 09:35:07 +00:00
}
export const createSysMessage = (opt = {})=> {
showToast(`${opt.title} ${opt.content}`)
playAudio(audioTypeEnum.notifyTone)
// #ifdef APP-PLUS
let msgOpt = {
// cover: true,
when: Date.now(),
title: opt.title,
}
let msgBody = opt
console.log("plus.push.createMessage ======", {
content: opt.content, msgBody, msgOpt
})
plus.push.createMessage(opt.content, msgBody, msgOpt);
// #endif
2024-12-29 07:16:57 +00:00
}