emis-app/common/messageNotice/socket.js
2024-12-29 17:35:07 +08:00

89 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { curEnvConf } from "@/common/env"
import { getCommonReqData } from "@/common/manageServer"
import { showToast, playAudio } from "@/common/untool"
import { audioTypeEnum } from "@/common/enum"
export const currentSocketTask = {
instance: null
}
export const createSocketMessage = ({ userInfo })=> {
const reConnectSock = ()=> {
console.log("reConnectSock 重试连接=====")
createSocketMessage({ userInfo })
}
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) {
console.error("connectSocket fail====", err)
setTimeout(reConnectSock, 3000)
}
})
currentSocketTask.instance = socketTask
socketTask.onError((err)=> {
console.log('socketTask.onError: ', err);
})
socketTask.onClose((res = {})=> {
// socketTask.connectSocket
console.log('socketTask.onClose: ', res);
// 正常关闭 不需重连
if(res.code != 1000) {
// 重连
setTimeout(reConnectSock, 3000)
}
// switch (res.code+''){
// case '1006':
// setTimeout(reConnectSock, 3000)
// break;
// default:
// break;
// }
})
socketTask.onOpen((res)=> {
console.log('socketTask.onOpen: ', res);
// TODO, 测试消息通知效果
createSysMessage({
"clickPath": "/123123/123",
"uid": 357,
"title": "测试消息c2",
"noticeId": 25,
"content": "测试消息内容c2",
})
})
socketTask.onMessage(function (res) {
console.log('onSocketMessage 收到服务器内容:', res?.data);
try{
let data = JSON.parse(res.data)
createSysMessage(data)
}catch(e){
console.error("")
}
});
}
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
}