108 lines
2.7 KiB
JavaScript
108 lines
2.7 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 重试连接=====")
|
|
socketTask = null
|
|
createSocketMessage({ userInfo })
|
|
}
|
|
|
|
const url = curEnvConf.socketHost
|
|
let comReqData = getCommonReqData()
|
|
let 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);
|
|
})
|
|
socketTask.onMessage(function (res) {
|
|
console.log('onSocketMessage 收到服务器内容:', res?.data);
|
|
try{
|
|
let data = JSON.parse(res.data)
|
|
createSysMessage(data)
|
|
}catch(e){
|
|
console.error("")
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
export const pushAddEventListenerInit = ()=> {
|
|
// #ifdef APP-PLUS
|
|
// 监听 消息栏的点击事件
|
|
plus.push.addEventListener('click', function(msg = {}){
|
|
// 分析msg.payload处理业务逻辑
|
|
console.log("push.addEventListener You clicked:", msg)
|
|
// {
|
|
// "__UUID__": "androidPushMsg96147834",
|
|
// "title": "测试消息c2",
|
|
// "appid": "__UNI__BCB0FB5",
|
|
// "content": "测试消息内容c2",
|
|
// "payload": {
|
|
// "clickPath": "/123123/123",
|
|
// "uid": 357,
|
|
// "title": "测试消息c2",
|
|
// "noticeId": 25,
|
|
// "content": "测试消息内容c2"
|
|
// }
|
|
// }
|
|
console.log("notice msg-- clickPath ", msg?.payload?.clickPath)
|
|
}, false );
|
|
// #endif
|
|
}
|
|
|
|
|
|
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
|
|
} |