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 }