|
@@ -1,6 +1,8 @@
|
|
|
|
|
|
import request from './request.js'
|
|
import request from './request.js'
|
|
import { clickCopyText, pasteText } from './common.js'
|
|
import { clickCopyText, pasteText } from './common.js'
|
|
|
|
+import logReport from './logReport.js'
|
|
|
|
+
|
|
// 禁止双击缩放
|
|
// 禁止双击缩放
|
|
document.addEventListener('dblclick', function (e) {
|
|
document.addEventListener('dblclick', function (e) {
|
|
e.preventDefault();
|
|
e.preventDefault();
|
|
@@ -21,7 +23,10 @@ let noOperationSetTimeoutTimeInterval = null
|
|
let noOperationSetIntervalTimeInterval = null
|
|
let noOperationSetIntervalTimeInterval = null
|
|
// 倒计时定时标识
|
|
// 倒计时定时标识
|
|
let countdownTimeInterval = null
|
|
let countdownTimeInterval = null
|
|
-// let vc = new VConsole()
|
|
|
|
|
|
+
|
|
|
|
+// 日志上报实例
|
|
|
|
+let logReportObj = null;
|
|
|
|
+
|
|
const app = new Vue({
|
|
const app = new Vue({
|
|
el: '#app',
|
|
el: '#app',
|
|
data: {
|
|
data: {
|
|
@@ -109,7 +114,9 @@ const app = new Vue({
|
|
this.initConfig()
|
|
this.initConfig()
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- this.getUserCardInfo()
|
|
|
|
|
|
+ // 初始化日志上报
|
|
|
|
+ this.initLogReport();
|
|
|
|
+ this.getUserCardInfo();
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
// 右侧弹框退出相关按钮
|
|
// 右侧弹框退出相关按钮
|
|
@@ -153,6 +160,7 @@ const app = new Vue({
|
|
methods: {
|
|
methods: {
|
|
// 初始化
|
|
// 初始化
|
|
initConfig() {
|
|
initConfig() {
|
|
|
|
+
|
|
// 获取窗口尺寸
|
|
// 获取窗口尺寸
|
|
this.getInitSize()
|
|
this.getInitSize()
|
|
let levitatedSpherePositionData = localStorage.getItem('levitatedSpherePositionData')
|
|
let levitatedSpherePositionData = localStorage.getItem('levitatedSpherePositionData')
|
|
@@ -167,6 +175,7 @@ const app = new Vue({
|
|
// 给api增加需要的参数
|
|
// 给api增加需要的参数
|
|
request.defaults.headers.Authorization = token
|
|
request.defaults.headers.Authorization = token
|
|
request.defaults.headers.versionname = '5.9.0'
|
|
request.defaults.headers.versionname = '5.9.0'
|
|
|
|
+ request.defaults.headers.merchantSign = 'SZX'
|
|
window.onresize = () => {
|
|
window.onresize = () => {
|
|
this.getInitSize()
|
|
this.getInitSize()
|
|
}
|
|
}
|
|
@@ -189,6 +198,7 @@ const app = new Vue({
|
|
{ 'CHINANET-GD': webrtcNetwork }, // 电信
|
|
{ 'CHINANET-GD': webrtcNetwork }, // 电信
|
|
{ 'UNICOM-GD': webrtcNetwork }, // 联通
|
|
{ 'UNICOM-GD': webrtcNetwork }, // 联通
|
|
];
|
|
];
|
|
|
|
+
|
|
const connection = {
|
|
const connection = {
|
|
name: "猪猪令是猪",
|
|
name: "猪猪令是猪",
|
|
topic, // 云机ID 必填
|
|
topic, // 云机ID 必填
|
|
@@ -207,6 +217,10 @@ const app = new Vue({
|
|
fps: 30, //必填
|
|
fps: 30, //必填
|
|
callback: this.statusCallBack,//回调函数 必填
|
|
callback: this.statusCallBack,//回调函数 必填
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+ // 设置日志参数 推流质量
|
|
|
|
+ logReportObj.setParams({imageQuality: 6000});
|
|
|
|
+
|
|
// 初始化 SDK
|
|
// 初始化 SDK
|
|
this.engine = new RtcEngineSDK(connection);
|
|
this.engine = new RtcEngineSDK(connection);
|
|
this.engine.RtcEngine()
|
|
this.engine.RtcEngine()
|
|
@@ -217,6 +231,7 @@ const app = new Vue({
|
|
if (event.type !== 'StreamStates') {
|
|
if (event.type !== 'StreamStates') {
|
|
// console.log("链接的状态", event, event.val);
|
|
// console.log("链接的状态", event, event.val);
|
|
}
|
|
}
|
|
|
|
+
|
|
switch (event.type) {
|
|
switch (event.type) {
|
|
case "screenChange":
|
|
case "screenChange":
|
|
// 0:横屏 1:竖屏
|
|
// 0:横屏 1:竖屏
|
|
@@ -228,6 +243,15 @@ const app = new Vue({
|
|
// success 链接成功
|
|
// success 链接成功
|
|
const status = ["TIMEOUT", "failed"]
|
|
const status = ["TIMEOUT", "failed"]
|
|
if (status.includes(event.val)) {
|
|
if (status.includes(event.val)) {
|
|
|
|
+ // 设置日志 推流状态为失败
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 2, linkWay: 1});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `信令服务地址nats失败:
|
|
|
|
+ url: ${this.engine.options.url}
|
|
|
|
+ 消息: ${JSON.stringify(event)}`
|
|
|
|
+ );
|
|
|
|
+
|
|
Dialog.alert({
|
|
Dialog.alert({
|
|
title: '提示',
|
|
title: '提示',
|
|
message: '链接超时',
|
|
message: '链接超时',
|
|
@@ -258,10 +282,35 @@ const app = new Vue({
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if (event.val === "connecting") return
|
|
if (event.val === "connecting") return
|
|
|
|
+ if (event.val === 'failed') {
|
|
|
|
+ // 设置日志 推流状态为失败
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 2, linkWay: 1});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `rtc链接失败:
|
|
|
|
+ 消息: ${JSON.stringify(event)}`
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ if(event.val === 'disconnected') {
|
|
|
|
+ // 设置日志 推流状态为失败
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 2, linkWay: 1});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `rtc链接超时:
|
|
|
|
+ 消息: ${JSON.stringify(event)}`
|
|
|
|
+ );
|
|
|
|
+ }
|
|
this.exit()
|
|
this.exit()
|
|
break;
|
|
break;
|
|
case "AuthenticationStatus":
|
|
case "AuthenticationStatus":
|
|
// console.log(`鉴权${event.val === "success" ? '成功' : '失败'}`);
|
|
// console.log(`鉴权${event.val === "success" ? '成功' : '失败'}`);
|
|
|
|
+ if (event.val !== "success") {
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `rtc鉴权失败:
|
|
|
|
+ 消息: ${JSON.stringify(event)}`
|
|
|
|
+ );
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case "StreamStates":
|
|
case "StreamStates":
|
|
// “currentRoundTripTime”:延迟 “lostRate”:丢包率 “seconds_KBytes”:带宽 “framesPerSecond”:帧率
|
|
// “currentRoundTripTime”:延迟 “lostRate”:丢包率 “seconds_KBytes”:带宽 “framesPerSecond”:帧率
|
|
@@ -302,6 +351,10 @@ const app = new Vue({
|
|
definitionFun(value) {
|
|
definitionFun(value) {
|
|
this.definitionValue = value
|
|
this.definitionValue = value
|
|
this.engine.makeBitrate && this.engine.makeBitrate(value)
|
|
this.engine.makeBitrate && this.engine.makeBitrate(value)
|
|
|
|
+
|
|
|
|
+ // 设置日志参数 推流质量
|
|
|
|
+ logReportObj.setParams({imageQuality: value});
|
|
|
|
+
|
|
localStorage.setItem('definitionValue', value)
|
|
localStorage.setItem('definitionValue', value)
|
|
this.levitatedSphereVisible = false
|
|
this.levitatedSphereVisible = false
|
|
},
|
|
},
|
|
@@ -362,7 +415,8 @@ const app = new Vue({
|
|
// 业务指令
|
|
// 业务指令
|
|
doConnectDirectives() {
|
|
doConnectDirectives() {
|
|
let { internetHttps, localIp, cardToken } = this.userCardInfoData
|
|
let { internetHttps, localIp, cardToken } = this.userCardInfoData
|
|
- let cUrl = `wss://${internetHttps}/businessChannel?cardIp=${localIp}&token=${cardToken}&type=directives`
|
|
|
|
|
|
+ const isWss = location.protocol === 'https:'
|
|
|
|
+ let cUrl = `${isWss ? 'wss' : 'ws'}://${internetHttps}/businessChannel?cardIp=${localIp}&token=${cardToken}&type=directives`
|
|
this.doConnectDirectivesWs = new WebSocket(cUrl);
|
|
this.doConnectDirectivesWs = new WebSocket(cUrl);
|
|
this.doConnectDirectivesWs.binaryType = 'arraybuffer'
|
|
this.doConnectDirectivesWs.binaryType = 'arraybuffer'
|
|
clearInterval(doConnectDirectivesIntervalerPing)
|
|
clearInterval(doConnectDirectivesIntervalerPing)
|
|
@@ -379,6 +433,9 @@ const app = new Vue({
|
|
}, 3000)
|
|
}, 3000)
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'getVsStatus' }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'getVsStatus' }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'bitRate', data: { bitRate: 1243000 } }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'bitRate', data: { bitRate: 1243000 } }))
|
|
|
|
+ // 设置日志参数 推流质量
|
|
|
|
+ logReportObj.setParams({imageQuality: 1243000});
|
|
|
|
+
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'InputMethod', data: { type: 2 } }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'InputMethod', data: { type: 2 } }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'getPhoneSize' }))
|
|
this.doConnectDirectivesWs.send(JSON.stringify({ type: 'getPhoneSize' }))
|
|
}
|
|
}
|
|
@@ -416,6 +473,16 @@ const app = new Vue({
|
|
|
|
|
|
// 链接报错的回调
|
|
// 链接报错的回调
|
|
this.doConnectDirectivesWs.onerror = res => {
|
|
this.doConnectDirectivesWs.onerror = res => {
|
|
|
|
+ // 设置日志 推流状态为失败
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 1, linkWay: ''});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `业务指令通道报错:
|
|
|
|
+ url: ${res.target.url}
|
|
|
|
+ type: ${res.type}
|
|
|
|
+ 消息: ${JSON.stringify(res)}`
|
|
|
|
+ );
|
|
|
|
+
|
|
clearInterval(doConnectDirectivesTimerInterval)
|
|
clearInterval(doConnectDirectivesTimerInterval)
|
|
if (doConnectDirectivesRequestNum > 6) {
|
|
if (doConnectDirectivesRequestNum > 6) {
|
|
this.exit()
|
|
this.exit()
|
|
@@ -543,92 +610,189 @@ const app = new Vue({
|
|
this.obtainCardInfoStartTime = + new Date()
|
|
this.obtainCardInfoStartTime = + new Date()
|
|
let { userCardId } = this.parametersData
|
|
let { userCardId } = this.parametersData
|
|
userCardId = +userCardId
|
|
userCardId = +userCardId
|
|
|
|
+
|
|
const statusTips = {
|
|
const statusTips = {
|
|
|
|
+ // 5200:RBD资源挂载中
|
|
5200: '网络异常,请稍后重试',
|
|
5200: '网络异常,请稍后重试',
|
|
|
|
+ // 入使用排队9.9,年卡
|
|
5220: '云手机正在一键修复中',
|
|
5220: '云手机正在一键修复中',
|
|
5203: '正在排队中,请稍等',
|
|
5203: '正在排队中,请稍等',
|
|
- 5204: '云机异常,正在为你重新分配云机'
|
|
|
|
|
|
+ // 9.9年卡连接异常,重新进入排队
|
|
|
|
+ 5204: '云机异常,正在为你重新分配云机',
|
|
|
|
+ 5228: '卡的网络状态为差',
|
|
|
|
+ 5229: '接口返回链接信息缺失',
|
|
}
|
|
}
|
|
- request.post('/api/resources/user/cloud/connect', { userCardId }).then(async res => {
|
|
|
|
- console.log('res', res);
|
|
|
|
- if (!res.success) { return }
|
|
|
|
- const { isWeixin } = this.parametersData;
|
|
|
|
- switch (res.status) {
|
|
|
|
- case 0:
|
|
|
|
- getUserCardInfoRequestNum = 1
|
|
|
|
- // 不支持webRTC跳转到指定的页面
|
|
|
|
- if (!res.data.isWebrtc) {
|
|
|
|
- location.replace(`${location.origin}/h5/webRtcYJ/WXtrialInterface.html${location.search}`)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if (!this.isSupportRtc) {
|
|
|
|
- Dialog.alert({
|
|
|
|
- title: '提示',
|
|
|
|
- message: `${+isWeixin ? '微信小程序' : ''}当前版本暂不支持使用,可下载谷歌浏览器或双子星客户端进行使用`,
|
|
|
|
- confirmButtonText: '确定',
|
|
|
|
- confirmButtonColor: '#3cc51f',
|
|
|
|
- beforeClose: (action, done) => {
|
|
|
|
- this.exit()
|
|
|
|
- done()
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ let { isWeixin } = this.parametersData;
|
|
|
|
+ let clientType = +isWeixin ? 'wx' : undefined;
|
|
|
|
|
|
- // webRtc连接,需获取连接地址
|
|
|
|
- if (res.data.webrtcNetworkAnalysis) {
|
|
|
|
- // 如果有网络分析的请求地址, 则请求,否则失败
|
|
|
|
- const webrtcNetworkAnalysisReq = await request.get(res.data.webrtcNetworkAnalysis);
|
|
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({userCardId});
|
|
|
|
+ clientType && logReportObj.setParams({clientType});
|
|
|
|
|
|
- console.log('webrtcNetworkAnalysisReq', webrtcNetworkAnalysisReq);
|
|
|
|
|
|
+ request.post('/api/resources/user/cloud/connect', { userCardId }).then(async res => {
|
|
|
|
+ try {
|
|
|
|
+ if (!res.success) {
|
|
|
|
+ // 设置日志 推流状态为失败,和链接状态
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 2, linkWay: logReportObj.RESPONSE_CODE[res.status] || ''});
|
|
|
|
|
|
- if (webrtcNetworkAnalysisReq !== null && webrtcNetworkAnalysisReq.success) {
|
|
|
|
- if (webrtcNetworkAnalysisReq.data) {
|
|
|
|
- // 保存获取的连接地址到上个请求的响应中, 方便后面使用
|
|
|
|
- res.data.webrtcNetwork = webrtcNetworkAnalysisReq.data;
|
|
|
|
- }
|
|
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `接口获取数据失败:
|
|
|
|
+ url: /api/resources/user/cloud/connect
|
|
|
|
+ method: post
|
|
|
|
+ 参数: ${JSON.stringify({ userCardId })}
|
|
|
|
+ 响应: ${JSON.stringify(res)}`
|
|
|
|
+ );
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const data = res.data;
|
|
|
|
+
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({videoType: data.videoCode, resourceId: data.resourceId});
|
|
|
|
+
|
|
|
|
+ switch (res.status) {
|
|
|
|
+ case 0:
|
|
|
|
+ getUserCardInfoRequestNum = 1
|
|
|
|
+ // 不支持webRTC跳转到指定的页面
|
|
|
|
+ if (!res.data.isWebrtc) {
|
|
|
|
+ // 关闭日志上报
|
|
|
|
+ logReportObj.destroy();
|
|
|
|
+
|
|
|
|
+ // 跳转指定页面
|
|
|
|
+ location.replace(`${location.origin}/h5/webRtcYJ/WXtrialInterface.html${location.search}`)
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果没有获取到连接地址, 则失败
|
|
|
|
- if(!res.data.webrtcNetwork) {
|
|
|
|
- Dialog.alert({
|
|
|
|
- title: '提示',
|
|
|
|
- message: '访问失败,请稍后重试',
|
|
|
|
- confirmButtonText: '确定',
|
|
|
|
- confirmButtonColor: '#3cc51f',
|
|
|
|
- beforeClose: (action, done) => {
|
|
|
|
- this.exit()
|
|
|
|
- done()
|
|
|
|
|
|
+
|
|
|
|
+ if (!this.isSupportRtc) {
|
|
|
|
+ // 设置日志 推流状态为失败
|
|
|
|
+ logReportObj.setParams({plugFowStatus: 2});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(`${+isWeixin ? '微信小程序' : ''}当前版本暂不支持使用`);
|
|
|
|
+
|
|
|
|
+ Dialog.alert({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: `${+isWeixin ? '微信小程序' : ''}当前版本暂不支持使用,可下载谷歌浏览器或双子星客户端进行使用`,
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ confirmButtonColor: '#3cc51f',
|
|
|
|
+ beforeClose: (action, done) => {
|
|
|
|
+ this.exit()
|
|
|
|
+ done()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // webRtc连接,需获取连接中转地址
|
|
|
|
+ if (res.data.webrtcNetworkAnalysis) {
|
|
|
|
+ // 如果有网络分析的请求地址, 则请求,否则失败
|
|
|
|
+ const webrtcNetworkAnalysisReq = await request.get(res.data.webrtcNetworkAnalysis);
|
|
|
|
+
|
|
|
|
+ if (webrtcNetworkAnalysisReq !== null && webrtcNetworkAnalysisReq.success) {
|
|
|
|
+ if (webrtcNetworkAnalysisReq.data) {
|
|
|
|
+ // 保存获取的连接地址到上个请求的响应中, 方便后面使用
|
|
|
|
+ res.data.webrtcNetwork = webrtcNetworkAnalysisReq.data;
|
|
|
|
+
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({transferServerIp: webrtcNetworkAnalysisReq.data});
|
|
|
|
+ }else{
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({linkWay: 4, plugFowStatus: 2});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `webRtc连接,获取中转地址成功,但返回数据为空:
|
|
|
|
+ url: ${res.data.webrtcNetworkAnalysis}
|
|
|
|
+ method: get
|
|
|
|
+ 参数: 无
|
|
|
|
+ 响应: ${JSON.stringify(webrtcNetworkAnalysisReq)}`
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({linkWay: 4, plugFowStatus: 2});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `webRtc连接,获取中转地址失败:
|
|
|
|
+ url: ${res.data.webrtcNetworkAnalysis}
|
|
|
|
+ method: get
|
|
|
|
+ 参数: 无
|
|
|
|
+ 响应: ${JSON.stringify(webrtcNetworkAnalysisReq)}`
|
|
|
|
+ );
|
|
}
|
|
}
|
|
- })
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- this.userCardInfoData = res.data
|
|
|
|
- // let ms = + new Date() - this.obtainCardInfoStartTime
|
|
|
|
- this.connectWebRtc()
|
|
|
|
- return
|
|
|
|
- case 5200:
|
|
|
|
- case 5220:
|
|
|
|
- case 5203:
|
|
|
|
- case 5204:
|
|
|
|
- if (res.status === 5200) {
|
|
|
|
- reconnect.bind(this)()
|
|
|
|
|
|
+ }else{
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({linkWay: 4, plugFowStatus: 2});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `webRtc连接,获取请求中转地址为空:
|
|
|
|
+ url: /api/resources/user/cloud/connect
|
|
|
|
+ method: post
|
|
|
|
+ 参数: ${JSON.stringify({ userCardId })}
|
|
|
|
+ 响应: ${JSON.stringify(res)}`
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 如果没有获取到连接地址, 则失败
|
|
|
|
+ if(!res.data.webrtcNetwork) {
|
|
|
|
+ Dialog.alert({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: '访问失败,请稍后重试',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ confirmButtonColor: '#3cc51f',
|
|
|
|
+ beforeClose: (action, done) => {
|
|
|
|
+ this.exit()
|
|
|
|
+ done()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.userCardInfoData = res.data
|
|
|
|
+ // let ms = + new Date() - this.obtainCardInfoStartTime
|
|
|
|
+ this.connectWebRtc()
|
|
return
|
|
return
|
|
- }
|
|
|
|
- Toast(statusTips[res.status])
|
|
|
|
- break
|
|
|
|
- default:
|
|
|
|
- Toast('画面异常,请重新进入')
|
|
|
|
- break
|
|
|
|
|
|
+ case 5200:
|
|
|
|
+ case 5220:
|
|
|
|
+ case 5203:
|
|
|
|
+ case 5204:
|
|
|
|
+ if (res.status === 5200) {
|
|
|
|
+ reconnect.bind(this)()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ Toast(statusTips[res.status])
|
|
|
|
+ break
|
|
|
|
+ default:
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({linkWay: logReportObj.RESPONSE_CODE[res.status] || ''});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(statusTips[res.status]);
|
|
|
|
+
|
|
|
|
+ Toast('画面异常,请重新进入')
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.exit()
|
|
|
|
+ }, 3000)
|
|
|
|
+
|
|
|
|
+ } catch (error) {
|
|
|
|
+
|
|
}
|
|
}
|
|
- setTimeout(() => {
|
|
|
|
- this.exit()
|
|
|
|
- }, 3000)
|
|
|
|
|
|
+ }).catch((error) => {
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({linkWay: 4, plugFowStatus: 2});
|
|
|
|
+ // 日志上报
|
|
|
|
+ logReportObj.collectLog(
|
|
|
|
+ `接口获取数据失败:
|
|
|
|
+ url: /api/resources/user/cloud/connect
|
|
|
|
+ method: post
|
|
|
|
+ 参数: ${JSON.stringify({ userCardId })}
|
|
|
|
+ 响应: ${JSON.stringify(error)}`
|
|
|
|
+ );
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+ // 重连
|
|
function reconnect() {
|
|
function reconnect() {
|
|
|
|
+ // 重连6次结束
|
|
if (getUserCardInfoRequestNum > 6) {
|
|
if (getUserCardInfoRequestNum > 6) {
|
|
Toast('网络异常,请稍后重试')
|
|
Toast('网络异常,请稍后重试')
|
|
clearTimeout(getUserCardInfoTimerInterval)
|
|
clearTimeout(getUserCardInfoTimerInterval)
|
|
@@ -638,6 +802,7 @@ const app = new Vue({
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 重连
|
|
getUserCardInfoTimerInterval = setTimeout(() => {
|
|
getUserCardInfoTimerInterval = setTimeout(() => {
|
|
this.getUserCardInfo()
|
|
this.getUserCardInfo()
|
|
getUserCardInfoRequestNum++
|
|
getUserCardInfoRequestNum++
|
|
@@ -657,6 +822,8 @@ const app = new Vue({
|
|
|
|
|
|
// 退出功能
|
|
// 退出功能
|
|
exit() {
|
|
exit() {
|
|
|
|
+ // 关闭日志上报
|
|
|
|
+ logReportObj.destroy();
|
|
this.engine.disconnect && this.engine.disconnect();
|
|
this.engine.disconnect && this.engine.disconnect();
|
|
this.doConnectDirectivesWs && this.doConnectDirectivesWs.close()
|
|
this.doConnectDirectivesWs && this.doConnectDirectivesWs.close()
|
|
uni.reLaunch({
|
|
uni.reLaunch({
|
|
@@ -805,6 +972,20 @@ const app = new Vue({
|
|
volumeControl(value) {
|
|
volumeControl(value) {
|
|
this.engine.ExexuteKeyBoard && this.engine.ExexuteKeyBoard(value)
|
|
this.engine.ExexuteKeyBoard && this.engine.ExexuteKeyBoard(value)
|
|
this.$refs.rtcMediaPlayer && (this.$refs.rtcMediaPlayer.muted = false)
|
|
this.$refs.rtcMediaPlayer && (this.$refs.rtcMediaPlayer.muted = false)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 初始化日志上报实例
|
|
|
|
+ initLogReport() {
|
|
|
|
+ let clientType;
|
|
|
|
+ uni.getEnv((res)=>{
|
|
|
|
+ console.log('当前环境:', res, );
|
|
|
|
+ clientType = Object.entries(res)?.[0];
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // 初始化日志上报实例
|
|
|
|
+ logReportObj = new logReport({request});
|
|
|
|
+ // 设置上报参数
|
|
|
|
+ logReportObj.setParams({clientType: clientType[0]});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|