89 lines
2.1 KiB
JavaScript
89 lines
2.1 KiB
JavaScript
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
|
||
} |