diff --git a/common/messageNotice/socket.js b/common/messageNotice/socket.js index c58aa9f..59215ff 100644 --- a/common/messageNotice/socket.js +++ b/common/messageNotice/socket.js @@ -3,7 +3,16 @@ 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({ @@ -15,50 +24,66 @@ export const createSocketMessage = ({ userInfo })=> { 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.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) { - debugger console.log('onSocketMessage 收到服务器内容:', res?.data); - playAudio(audioTypeEnum.notifyTone) - // let that=this; - // if(evtStr==null||evtStr==undefined){ - // return; - // } - - // let evt= JSON.parse(evtStr); - // if(evt==null||evt==undefined){ - // return; - // } - - // 播放声音通知 - // this.playTone(); - - // var messageBody = evt.title; - // let noticeId= evt.noticeId; - - // 弹出通知提示 - // Notification.info({ - // title: "系统通知", - // dangerouslyUseHTMLString: true, - // message: messageBody, - // position: 'top-right', - // customClass:'notify-success', - // duration: 0, - // onClick: function () { - // // 提示消息 - // //that.setAddReadTimes(noticeId); - // }, - // }); - debugger + 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 } \ No newline at end of file diff --git a/store/modules/user.js b/store/modules/user.js index 72a812f..9a4ebad 100644 --- a/store/modules/user.js +++ b/store/modules/user.js @@ -7,7 +7,7 @@ import { } from "@/session" import * as apiService from "@/common/api" import { goto } from "@/common/untool" -import { createSocketMessage } from "@/common/messageNotice/socket" +import { createSocketMessage, currentSocketTask } from "@/common/messageNotice/socket" export default { state: { @@ -57,8 +57,9 @@ export default { }, options) { setSessionUserInfo({}) setSessionXToken('') - commit(USERKEY.LOGOUT) + // 关闭socket + currentSocketTask.instance?.close?.({ noReConnect: true }) }, async [USERKEY.GETUSERINFO]({ dispatch,