|
@@ -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();
|
|
|
// 关闭业务指令通道
|