diff --git a/im-ui/package.json b/im-ui/package.json index 0413271..d31873b 100644 --- a/im-ui/package.json +++ b/im-ui/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "serve": "vue-cli-service serve", - "build": "vue-cli-service build", + "build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build", "lint": "vue-cli-service lint" }, "dependencies": { diff --git a/im-uniapp/App.vue b/im-uniapp/App.vue index 0d4f50e..3984a47 100644 --- a/im-uniapp/App.vue +++ b/im-uniapp/App.vue @@ -3,7 +3,8 @@ import http from './common/request'; import * as enums from './common/enums'; import * as wsApi from './common/wssocket'; - + import UNI_APP from '@/.env.js' + export default { data() { return { @@ -26,7 +27,7 @@ initWebSocket() { let loginInfo = uni.getStorageSync("loginInfo") wsApi.init(); - wsApi.connect(process.env.WS_URL, loginInfo.accessToken); + wsApi.connect(UNI_APP.WS_URL, loginInfo.accessToken); wsApi.onConnect(() => { // 加载离线消息 this.pullPrivateOfflineMessage(store.state.chatStore.privateMsgMaxId); @@ -49,15 +50,15 @@ } }); wsApi.onClose((res) => { - // 3000是客户端主动关闭 - if (res.code != 3000) { + // 1000是客户端正常主动关闭 + if (res.code != 1000) { // 重新连接 uni.showToast({ title: '连接已断开,尝试重新连接...', icon: 'none', }) let loginInfo = uni.getStorageSync("loginInfo") - wsApi.reconnect(process.env.WS_URL, loginInfo.accessToken); + wsApi.reconnect(UNI_APP.WS_URL, loginInfo.accessToken); } }) }, @@ -204,7 +205,7 @@ }, exit() { console.log("exit"); - wsApi.close(); + wsApi.close(1000); uni.removeStorageSync("loginInfo"); uni.reLaunch({ url: "/pages/login/login" diff --git a/im-uniapp/common/request.js b/im-uniapp/common/request.js index 606c841..461ff6b 100644 --- a/im-uniapp/common/request.js +++ b/im-uniapp/common/request.js @@ -1,3 +1,5 @@ +import UNI_APP from '@/.env.js' + // 请求队列 let requestList = []; // 是否正在刷新中 @@ -11,7 +13,7 @@ const request = (options) => { } return new Promise(function(resolve, reject) { uni.request({ - url: process.env.BASE_URL + options.url, + url: UNI_APP.BASE_URL + options.url, method: options.method || 'GET', header: header, data: options.data || {}, @@ -71,7 +73,7 @@ const reqRefreshToken = (loginInfo) => { return new Promise(function(resolve, reject) { uni.request({ method: 'PUT', - url: process.env.BASE_URL + '/refreshToken', + url: UNI_APP.BASE_URL + '/refreshToken', header: { refreshToken: loginInfo.refreshToken }, diff --git a/im-uniapp/common/wssocket.js b/im-uniapp/common/wssocket.js index be7ff7f..7c6acff 100644 --- a/im-uniapp/common/wssocket.js +++ b/im-uniapp/common/wssocket.js @@ -46,17 +46,15 @@ let init = () => { uni.onSocketClose((res) => { console.log('WebSocket连接关闭') - isConnect = false; //断开后修改标识 + isConnect = false; closeCallBack && closeCallBack(res); }) uni.onSocketError((e) => { console.log(e) - isConnect = false; //连接断开修改标识 - uni.showModal({ - content: '连接失败,可能是websocket服务不可用,请稍后再试', - showCancel: false, - }) + isConnect = false; + // APP 应用切出超过一定时间(约1分钟)会触发报错,此处回调给应用进行重连 + closeCallBack && closeCallBack({code: 1006}); }) }; @@ -95,12 +93,12 @@ let reconnect = (wsurl, accessToken) => { }; //设置关闭连接 -let close = () => { +let close = (code) => { if (!isConnect) { return; } uni.closeSocket({ - code: 3000, + code: code, complete: (res) => { console.log("关闭websocket连接"); isConnect = false; diff --git a/im-uniapp/components/file-upload/file-upload.vue b/im-uniapp/components/file-upload/file-upload.vue index a2b54ac..158dff6 100644 --- a/im-uniapp/components/file-upload/file-upload.vue +++ b/im-uniapp/components/file-upload/file-upload.vue @@ -5,6 +5,8 @@