Преглед на файлове

晚上重构的字段取值错误问题

t_finder преди 2 седмици
родител
ревизия
31ba415014
променени са 3 файла, в които са добавени 68 реда и са изтрити 20 реда
  1. 1 2
      pages/rtcEngine/components/RightPopup.vue
  2. 7 8
      pages/rtcEngine/config/logReport.js
  3. 60 10
      pages/rtcEngine/rtc.vue

+ 1 - 2
pages/rtcEngine/components/RightPopup.vue

@@ -59,7 +59,7 @@ export default {
     // 清晰度默认值
     definitionValue: {
       type: String,
-      default: ()=> localStorage.getItem('definitionValue') ?? '标清',
+      default: ()=> localStorage.getItem('definitionValue') ?? '自动',
     },
     // 清晰度列表
     definitionList: {
@@ -172,7 +172,6 @@ export default {
     },
     // 退出相关按钮操作
     exitFun(key) {
-      console.log(key)
       switch (key) {
         case 'dormant': // 退出并下机
           this.$dialog.alert({

+ 7 - 8
pages/rtcEngine/config/logReport.js

@@ -22,7 +22,7 @@ export default class LogReport {
     'phoneSystemVersion': '', // 手机系统版本号 // 无法获取
     'phoneNetwork': '', // 手机网络类型
     'videoType': '', // 视频类型
-    'imageQuality': '', // 推流质量 [高清 | 流畅] 
+    'imageQuality': '', // 推流质量 [高清 | 流畅 | ...] 
     'userCardId': '', 
     'cardInfoId': '', // 无法获取
     'resourceId': '', // 资源ID
@@ -50,11 +50,10 @@ export default class LogReport {
 
   // 码率 枚举值
   BITRATE = Object.freeze({
-    1800: '标清',
-    2200: '标清',
-    2800: '标清',
-    6000: '高清',
-    1243000: '超清',
+    '自动': 2800,
+    '高清': 2800,
+    '标清': 1500,
+    '流畅': 1000,
   });
 
   // 链接场景 枚举值
@@ -246,8 +245,8 @@ export default class LogReport {
   
       // 客户端类型 枚举值赋值
       params.clientType = this.enumAssignment(this.CLIENT_TYPE, this.paramsJson.clientType);
-  
-      params.imageQuality = this.enumAssignment(this.BITRATE, this.paramsJson.imageQuality);
+      
+      params.imageQuality = this.paramsJson.imageQuality;
   
       params.linkScene = this.enumAssignment(this.LINK_SCENE, this.paramsJson.linkScene);
 

+ 60 - 10
pages/rtcEngine/rtc.vue

@@ -178,7 +178,7 @@ export default {
       console.log('$_script_loadHandler: SDK加载成功');
       this.sdkLoadStatus = 'success';
 
-      // 初始化日志上报 TODO 添加日志系统
+      // 初始化日志上报
       this.initLogReport();
 
       // 调用接口获取卡连接数据
@@ -359,11 +359,11 @@ export default {
     async judgeConnectType(cardData) {
       try {
         // 设置上报参数
-        this.logReportObj.setParams({videoType: data.videoCode.toLowerCase(), resourceId: data.resourceId});
+        this.logReportObj.setParams({videoType: cardData.videoCode.toLowerCase(), resourceId: cardData.resourceId});
 
         // 不支持webRTC跳转到指定的页面进行拉流
         if (!cardData.isWebrtc) {
-          // 关闭日志上报 TODO 可能还需要关闭其他定时器等
+          // 关闭日志上报
           this.logReportObj.destroy();
 
           // 跳转指定页面
@@ -378,7 +378,6 @@ export default {
           // 日志上报
           this.logReportObj.collectLog(`${+this.parametersData.isWeixin ? '微信小程序' : ''}当前版本暂不支持使用`);
 
-          // TODO 提示错误信息 和 日志参数及上报
           this.$dialog.alert({
             title: '提示',
             message: '当前环境不支持使用,可下载谷歌浏览器或客户端进行使用',
@@ -461,6 +460,8 @@ export default {
         // 生成连接地址
         const url = `${isWss ? 'wss://' : 'ws://'}${isWss ? internetHttps : internetHttp}/nats`;
 
+        let quality = localStorage.getItem('definitionValue') ?? '自动';
+
         // 统一使用三网解析地址
         const ICEServerUrl = [
             { "CMNET": webrtcNetwork }, // 移动
@@ -487,7 +488,7 @@ export default {
           cardHeight: 0, // 云机系统分辨率 高  必填
           cardDensity: 0, // 云机系统显示 密度  必填
           authToken,  //拉流鉴权 token  必填
-          quality: '高清',// 画质(码率)  超清 | 高清 | 标清 | 流畅
+          quality, // 画质(码率)  超清 | 高清 | 标清 | 流畅
           fps: 30, //必填
           videoCodec: videoCode, // 视频编码格式  必填
           videoCodecMethod: true, // 硬编true | 软编false
@@ -498,8 +499,7 @@ export default {
         };
 
         // 设置日志参数 推流质量 
-        // TODO 明天继续,需要对现在的高清,标清,流畅重新做一个映射,日志枚举值也需要修改
-        this.logReportObj.setParams({imageQuality: 6000});
+        this.logReportObj.setParams({imageQuality: quality});
 
         // 获取SDK类
         const MediaSdk = window.rtc_sdk.MediaSdk;
@@ -523,7 +523,12 @@ export default {
       engine.on('CONNECT_SUCCESS', (r) => {
         console.log("webrtc连接成功====★★★★★", r);
         if (r.code === 1005) { // 1005: 拉流鉴权成功
-          this.$toast.clear();
+          // 设置日志 推流状态为成功
+          let now = new Date();
+          this.logReportObj.setParams({plugFowStatus: 1, linkWay: 1, timeConsuming: now.getTime() - this.logReportObj.timeStartTime, linkEndTime: this.logReportObj.formatDate(now)});
+          // 日志上报
+          this.logReportObj.collectLog(`拉流成功`);
+
           // 初始化业务指令通道
           this.initControlChannel();
           
@@ -542,6 +547,31 @@ export default {
       // 连接异常
       engine.on('CONNECT_ERROR', (r) => {
         console.log("webrtc异常状态====★★★★★", r);
+        // 异常状态枚举值
+        const statusEnum = {
+          10011: '连接超时',
+          10012: '连接失败',
+          1002: 'rtc连接失败',
+          1003: 'rtc异常断开',
+          1004: 'rtc连接失败',
+          1006: '鉴权失败',
+        };
+
+        // 设置日志 推流状态为失败
+        this.logReportObj.setParams({plugFowStatus: 2, linkWay: 0, linkEndTime: this.logReportObj.formatDate(new Date())});
+        // 日志上报
+        this.logReportObj.collectLog( `${statusEnum[r.code] || '连接异常'}: 消息: ${JSON.stringify(r)}` );
+
+        this.$dialog.alert({
+          title: '提示',
+          message: '链接超时',
+          confirmButtonText: '确定',
+          confirmButtonColor: '#3cc51f',
+          beforeClose: (action, done) => {
+            done()
+            this.exit()
+          }
+        })
       });
 
       // 显示区域大小发生改变 响应
@@ -566,6 +596,15 @@ export default {
 
         // 链接成功
         this.doConnectDirectivesWs.onopen = (e) => {
+          // 日志上报
+          this.logReportObj.collectLog( `消息: 业务通道连接成功` );
+
+          // 清除loading
+          this.$toast.clear();
+
+          // 重置重连次数
+          this.doConnectDirectivesRequestNum = 1;
+
           // 设置定时器 每3秒发送一次心跳
           this.doConnectDirectivesIntervalerPing = setInterval(() => {
             if (this.doConnectDirectivesWs.readyState === 1) {
@@ -581,10 +620,11 @@ export default {
 
         // 接受到的消息
         this.doConnectDirectivesWs.onmessage = res => {
+
           const result = typeof res.data === 'string' ? JSON.parse(res.data) : res.data;
           switch (result.type) {
             case 'reProduceText':
-              this.$native.clipboard.writeText(text);
+              this.$native.clipboard.writeText(result.data.text);
               break
             case 'downAdnInstallRep':
               this.$toast(result.data.msg)
@@ -598,6 +638,16 @@ export default {
 
         // 链接报错的回调
         this.doConnectDirectivesWs.onerror = res => {
+          // 设置日志
+          this.logReportObj.setParams({plugFowStatus: 1, linkWay: 0, linkEndTime: this.logReportObj.formatDate(new Date())});
+          // 日志上报
+          this.logReportObj.collectLog(
+            `业务指令通道报错:
+            url: ${res.target.url}
+            type: ${res.type}
+            消息: ${JSON.stringify(res)}`
+          );
+
           if (this.doConnectDirectivesRequestNum > this.doConnectDirectivesRequestNumMax) {
             return this.exit();
           }else{
@@ -633,7 +683,7 @@ export default {
     // 退出功能
     exit() {
       // 关闭日志上报
-      // logReportObj.destroy();
+      this.logReportObj.destroy();
       // 关闭webRTC
       this.engine.disconnect && this.engine.disconnect();
       // 关闭业务指令通道