正在显示
5 个修改的文件
包含
308 行增加
和
20 行删除
src/Base64Module.js
0 → 100644
| 1 | +/** | ||
| 2 | + * | ||
| 3 | + * Base64Module | ||
| 4 | + * */ | ||
| 5 | + | ||
| 6 | +import Emiter from 'Emiter'; | ||
| 7 | +import Loger from 'Loger'; | ||
| 8 | +class Base64Module extends Emiter { | ||
| 9 | + constructor() { | ||
| 10 | + super(); | ||
| 11 | + this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + // public method for encoding | ||
| 15 | + encode(input) { | ||
| 16 | + let output = ""; | ||
| 17 | + let chr1, chr2, chr3, enc1, enc2, enc3, enc4; | ||
| 18 | + let i = 0; | ||
| 19 | + input = this._utf8_encode(input); | ||
| 20 | + while (i < input.length) { | ||
| 21 | + chr1 = input.charCodeAt(i++); | ||
| 22 | + chr2 = input.charCodeAt(i++); | ||
| 23 | + chr3 = input.charCodeAt(i++); | ||
| 24 | + enc1 = chr1 >> 2; | ||
| 25 | + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); | ||
| 26 | + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); | ||
| 27 | + enc4 = chr3 & 63; | ||
| 28 | + if (isNaN(chr2)) { | ||
| 29 | + enc3 = enc4 = 64; | ||
| 30 | + } else if (isNaN(chr3)) { | ||
| 31 | + enc4 = 64; | ||
| 32 | + } | ||
| 33 | + output = output + | ||
| 34 | + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + | ||
| 35 | + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); | ||
| 36 | + } | ||
| 37 | + return output; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + // public method for decoding | ||
| 41 | + decode(input) { | ||
| 42 | + let output = ""; | ||
| 43 | + let chr1, chr2, chr3; | ||
| 44 | + let enc1, enc2, enc3, enc4; | ||
| 45 | + let i = 0; | ||
| 46 | + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); | ||
| 47 | + while (i < input.length) { | ||
| 48 | + enc1 = this._keyStr.indexOf(input.charAt(i++)); | ||
| 49 | + enc2 = this._keyStr.indexOf(input.charAt(i++)); | ||
| 50 | + enc3 = this._keyStr.indexOf(input.charAt(i++)); | ||
| 51 | + enc4 = this._keyStr.indexOf(input.charAt(i++)); | ||
| 52 | + chr1 = (enc1 << 2) | (enc2 >> 4); | ||
| 53 | + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); | ||
| 54 | + chr3 = ((enc3 & 3) << 6) | enc4; | ||
| 55 | + output = output + String.fromCharCode(chr1); | ||
| 56 | + if (enc3 != 64) { | ||
| 57 | + output = output + String.fromCharCode(chr2); | ||
| 58 | + } | ||
| 59 | + if (enc4 != 64) { | ||
| 60 | + output = output + String.fromCharCode(chr3); | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + output = this._utf8_decode(output); | ||
| 64 | + return output; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + // private method for UTF-8 encoding | ||
| 68 | + _utf8_encode(string) { | ||
| 69 | + string = string.replace(/\r\n/g, "\n"); | ||
| 70 | + let utftext = ""; | ||
| 71 | + for (let n = 0; n < string.length; n++) { | ||
| 72 | + let c = string.charCodeAt(n); | ||
| 73 | + if (c < 128) { | ||
| 74 | + utftext += String.fromCharCode(c); | ||
| 75 | + } else if ((c > 127) && (c < 2048)) { | ||
| 76 | + utftext += String.fromCharCode((c >> 6) | 192); | ||
| 77 | + utftext += String.fromCharCode((c & 63) | 128); | ||
| 78 | + } else { | ||
| 79 | + utftext += String.fromCharCode((c >> 12) | 224); | ||
| 80 | + utftext += String.fromCharCode(((c >> 6) & 63) | 128); | ||
| 81 | + utftext += String.fromCharCode((c & 63) | 128); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + } | ||
| 85 | + return utftext; | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + // private method for UTF-8 decoding | ||
| 89 | + _utf8_decode(utftext) { | ||
| 90 | + let string = ""; | ||
| 91 | + let i = 0; | ||
| 92 | + let c=0; | ||
| 93 | + let c1 = 0; | ||
| 94 | + let c2 = 0; | ||
| 95 | + let c3=0; | ||
| 96 | + while (i < utftext.length) { | ||
| 97 | + c = utftext.charCodeAt(i); | ||
| 98 | + if (c < 128) { | ||
| 99 | + string += String.fromCharCode(c); | ||
| 100 | + i++; | ||
| 101 | + } else if ((c > 191) && (c < 224)) { | ||
| 102 | + c2 = utftext.charCodeAt(i + 1); | ||
| 103 | + string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); | ||
| 104 | + i += 2; | ||
| 105 | + } else { | ||
| 106 | + c2 = utftext.charCodeAt(i + 1); | ||
| 107 | + c3 = utftext.charCodeAt(i + 2); | ||
| 108 | + string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); | ||
| 109 | + i += 3; | ||
| 110 | + } | ||
| 111 | + } | ||
| 112 | + return string; | ||
| 113 | + } | ||
| 114 | +} | ||
| 115 | +export default Base64Module; | ||
| 116 | + |
| @@ -62,7 +62,7 @@ export default class MessageEntrance extends Emiter { | @@ -62,7 +62,7 @@ export default class MessageEntrance extends Emiter { | ||
| 62 | constructor() { | 62 | constructor() { |
| 63 | super(); | 63 | super(); |
| 64 | //sdk 信息 | 64 | //sdk 信息 |
| 65 | - GlobalConfig.sdkVersion = "v2.2.16.20170905"; | 65 | + GlobalConfig.sdkVersion = "v2.3.6.20170907"; |
| 66 | loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); | 66 | loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); |
| 67 | 67 | ||
| 68 | //设置 | 68 | //设置 |
| @@ -99,6 +99,7 @@ export default class MessageEntrance extends Emiter { | @@ -99,6 +99,7 @@ export default class MessageEntrance extends Emiter { | ||
| 99 | _webRtc.on('*', (type, data) => this._emit(type, data)); | 99 | _webRtc.on('*', (type, data) => this._emit(type, data)); |
| 100 | _webRtc.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this)); //监听摄像头和麦克风的开启状态 | 100 | _webRtc.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this)); //监听摄像头和麦克风的开启状态 |
| 101 | 101 | ||
| 102 | + | ||
| 102 | // Sass平台层 | 103 | // Sass平台层 |
| 103 | _sass = Sass; | 104 | _sass = Sass; |
| 104 | _sass.on('*', (type, data) => this._emit(type, data)); | 105 | _sass.on('*', (type, data) => this._emit(type, data)); |
| @@ -1095,17 +1096,116 @@ export default class MessageEntrance extends Emiter { | @@ -1095,17 +1096,116 @@ export default class MessageEntrance extends Emiter { | ||
| 1095 | GlobalConfig.screenWidth = window.screen.width; | 1096 | GlobalConfig.screenWidth = window.screen.width; |
| 1096 | GlobalConfig.screenHeight = window.screen.height; | 1097 | GlobalConfig.screenHeight = window.screen.height; |
| 1097 | 1098 | ||
| 1098 | - | ||
| 1099 | GlobalConfig.channelId = ""+GlobalConfig.siteId+"_"+GlobalConfig.classId; | 1099 | GlobalConfig.channelId = ""+GlobalConfig.siteId+"_"+GlobalConfig.classId; |
| 1100 | GlobalConfig.userUid = GlobalConfig.nodeId; | 1100 | GlobalConfig.userUid = GlobalConfig.nodeId; |
| 1101 | - GlobalConfig.channelKey=null; | 1101 | + GlobalConfig.channelKey=""; |
| 1102 | + | ||
| 1103 | + //判断是否需要获取加入音视频通话频道的channelKey | ||
| 1104 | + if(GlobalConfig.appCertificate){ | ||
| 1105 | + loger.log("加入视频通话模块->需要先获取channelKey") | ||
| 1106 | + //获取channelKey | ||
| 1107 | + _sass.getChannelKeyToken((_data)=>{ | ||
| 1108 | + //{"code":200,"channelKey":"005AQAoAEQzQUQxNzFDOEQwOEU3OTVGMjlCMzZDRUZENTNGOTU0RDY4N0ZGMUEQANylukzO70ocgrNX9hlkNNWvpLBZ9buDAy/fuVkAAA==","uid":"751373669"} | ||
| 1109 | + if(_data&&_data.channelKey){ | ||
| 1110 | + GlobalConfig.channelKey=_data.channelKey||""; | ||
| 1111 | + } | ||
| 1112 | + this._joinClassSuccessSeting(); | ||
| 1113 | + }) | ||
| 1114 | + }else { | ||
| 1115 | + loger.log("加入视频通话模块->不需要获取channelKey") | ||
| 1116 | + this._joinClassSuccessSeting(); | ||
| 1117 | + } | ||
| 1118 | + /* | ||
| 1119 | + //返回给客户端初始化成功的数据 | ||
| 1120 | + let joinClassSuccessCallBackData = {}; | ||
| 1121 | + joinClassSuccessCallBackData.isRecordPlayBack = GlobalConfig.isRecordPlayBack; | ||
| 1122 | + joinClassSuccessCallBackData.DOCServerIP = GlobalConfig.DOCServerIP; | ||
| 1123 | + joinClassSuccessCallBackData.DOCServerPort = GlobalConfig.DOCServerPort; | ||
| 1102 | 1124 | ||
| 1125 | + joinClassSuccessCallBackData.classStatus = GlobalConfig.classStatus; | ||
| 1126 | + joinClassSuccessCallBackData.classId = GlobalConfig.classId; | ||
| 1127 | + joinClassSuccessCallBackData.className = GlobalConfig.className; | ||
| 1128 | + joinClassSuccessCallBackData.h5Module = GlobalConfig.h5Module; | ||
| 1129 | + joinClassSuccessCallBackData.isHost = GlobalConfig.isHost; | ||
| 1130 | + joinClassSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels; | ||
| 1131 | + joinClassSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels; | ||
| 1132 | + joinClassSuccessCallBackData.maxMediaChannels = GlobalConfig.maxMediaChannels; | ||
| 1133 | + joinClassSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay; | ||
| 1103 | 1134 | ||
| 1135 | + joinClassSuccessCallBackData.msType = GlobalConfig.msType; | ||
| 1136 | + joinClassSuccessCallBackData.nodeId = GlobalConfig.nodeId; | ||
| 1137 | + joinClassSuccessCallBackData.password = GlobalConfig.password; | ||
| 1138 | + joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; // 老师的默认是true | ||
| 1139 | + //GlobalConfig.passwordRequired 老师的默认是true | ||
| 1140 | + //GlobalConfig.portal=_data.portal; | ||
| 1141 | + joinClassSuccessCallBackData.role = GlobalConfig.role; | ||
| 1142 | + joinClassSuccessCallBackData.siteId = GlobalConfig.siteId; | ||
| 1143 | + joinClassSuccessCallBackData.topNodeID = GlobalConfig.topNodeID; | ||
| 1144 | + joinClassSuccessCallBackData.userId = GlobalConfig.userId; | ||
| 1145 | + joinClassSuccessCallBackData.userName = GlobalConfig.userName; | ||
| 1146 | + joinClassSuccessCallBackData.userRole = GlobalConfig.userRole; | ||
| 1147 | + joinClassSuccessCallBackData.userType = GlobalConfig.userType; | ||
| 1148 | + | ||
| 1149 | + joinClassSuccessCallBackData.siteId = GlobalConfig.siteId; | ||
| 1150 | + joinClassSuccessCallBackData.classId = GlobalConfig.classId; | ||
| 1151 | + joinClassSuccessCallBackData.userRole = GlobalConfig.userRole; | ||
| 1152 | + joinClassSuccessCallBackData.userId = GlobalConfig.userId; | ||
| 1153 | + joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; | ||
| 1154 | + joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1; | ||
| 1155 | + | ||
| 1156 | + joinClassSuccessCallBackData.country = GlobalConfig.country; //国家 | ||
| 1157 | + joinClassSuccessCallBackData.city = GlobalConfig.city; //城市 | ||
| 1158 | + joinClassSuccessCallBackData.province = GlobalConfig.province; //服务商 | ||
| 1159 | + joinClassSuccessCallBackData.isp = GlobalConfig.isp; //服务商 | ||
| 1160 | + | ||
| 1161 | + joinClassSuccessCallBackData.classTimestamp = GlobalConfig.classTimestamp; //课堂进行的累积时间 | ||
| 1162 | + joinClassSuccessCallBackData.recordTimestamp = GlobalConfig.recordTimestamp; //课堂录制的累积时间 | ||
| 1163 | + joinClassSuccessCallBackData.recordPlaybackMaxTime = GlobalConfig.recordPlaybackMaxTime; //录制回放的总时间 | ||
| 1164 | + | ||
| 1165 | + joinClassSuccessCallBackData.fps = GlobalConfig.fps; | ||
| 1166 | + joinClassSuccessCallBackData.gop = GlobalConfig.gop; | ||
| 1167 | + joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality; | ||
| 1168 | + | ||
| 1169 | + joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; | ||
| 1170 | + joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示 | ||
| 1171 | + joinClassSuccessCallBackData.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc; | ||
| 1172 | + | ||
| 1173 | + joinClassSuccessCallBackData.deviceType = GlobalConfig.deviceType; | ||
| 1174 | + joinClassSuccessCallBackData.language = GlobalConfig.language; | ||
| 1175 | + joinClassSuccessCallBackData.explorer = GlobalConfig.explorer; | ||
| 1176 | + joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion; | ||
| 1177 | + joinClassSuccessCallBackData.os = GlobalConfig.os; | ||
| 1178 | + | ||
| 1179 | + joinClassSuccessCallBackData.channelId =GlobalConfig.channelId ; | ||
| 1180 | + joinClassSuccessCallBackData.channelKey =GlobalConfig.channelKey ; | ||
| 1181 | + joinClassSuccessCallBackData.userUid = GlobalConfig.userUid; | ||
| 1182 | + joinClassSuccessCallBackData.appId = GlobalConfig.appId; | ||
| 1183 | + joinClassSuccessCallBackData.appCertificate = GlobalConfig.appCertificate; | ||
| 1184 | + joinClassSuccessCallBackData.appRecordingKey = GlobalConfig.appRecordingKey; | ||
| 1185 | + | ||
| 1186 | + //设置日志上报所需的信息 | ||
| 1187 | + LogManager.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc;//本地时间和服务器时间的差值(秒) | ||
| 1188 | + LogManager.classId = GlobalConfig.classId;//课堂号 | ||
| 1189 | + LogManager.userId = GlobalConfig.userId;//userId | ||
| 1190 | + LogManager.nodeId = GlobalConfig.nodeId;//nodeId | ||
| 1191 | + LogManager.userRole = GlobalConfig.userRole;//userRole | ||
| 1192 | + LogManager.userName = GlobalConfig.userName;//用户名称 | ||
| 1193 | + LogManager.logUrl = GlobalConfig.logUrl;//日志服务器地址 //http://log.3mang.com | ||
| 1194 | + LogManager.platform=GlobalConfig.platform; | ||
| 1195 | + loger.log('加入课堂成功->'); | ||
| 1196 | + loger.log(joinClassSuccessCallBackData); | ||
| 1197 | + | ||
| 1198 | + //加入课堂成功,广播消息 | ||
| 1199 | + this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); | ||
| 1200 | + | ||
| 1201 | + //加入音视频通话模块 | ||
| 1202 | + this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole});*/ | ||
| 1203 | + } | ||
| 1204 | + //加入课堂成功之后设置本地数据和返回数据给客户端 | ||
| 1205 | + _joinClassSuccessSeting(){ | ||
| 1104 | //返回给客户端初始化成功的数据 | 1206 | //返回给客户端初始化成功的数据 |
| 1105 | let joinClassSuccessCallBackData = {}; | 1207 | let joinClassSuccessCallBackData = {}; |
| 1106 | - | ||
| 1107 | joinClassSuccessCallBackData.isRecordPlayBack = GlobalConfig.isRecordPlayBack; | 1208 | joinClassSuccessCallBackData.isRecordPlayBack = GlobalConfig.isRecordPlayBack; |
| 1108 | - | ||
| 1109 | joinClassSuccessCallBackData.DOCServerIP = GlobalConfig.DOCServerIP; | 1209 | joinClassSuccessCallBackData.DOCServerIP = GlobalConfig.DOCServerIP; |
| 1110 | joinClassSuccessCallBackData.DOCServerPort = GlobalConfig.DOCServerPort; | 1210 | joinClassSuccessCallBackData.DOCServerPort = GlobalConfig.DOCServerPort; |
| 1111 | 1211 | ||
| @@ -1163,7 +1263,6 @@ export default class MessageEntrance extends Emiter { | @@ -1163,7 +1263,6 @@ export default class MessageEntrance extends Emiter { | ||
| 1163 | joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion; | 1263 | joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion; |
| 1164 | joinClassSuccessCallBackData.os = GlobalConfig.os; | 1264 | joinClassSuccessCallBackData.os = GlobalConfig.os; |
| 1165 | 1265 | ||
| 1166 | - | ||
| 1167 | joinClassSuccessCallBackData.channelId =GlobalConfig.channelId ; | 1266 | joinClassSuccessCallBackData.channelId =GlobalConfig.channelId ; |
| 1168 | joinClassSuccessCallBackData.channelKey =GlobalConfig.channelKey ; | 1267 | joinClassSuccessCallBackData.channelKey =GlobalConfig.channelKey ; |
| 1169 | joinClassSuccessCallBackData.userUid = GlobalConfig.userUid; | 1268 | joinClassSuccessCallBackData.userUid = GlobalConfig.userUid; |
| @@ -1185,7 +1284,6 @@ export default class MessageEntrance extends Emiter { | @@ -1185,7 +1284,6 @@ export default class MessageEntrance extends Emiter { | ||
| 1185 | 1284 | ||
| 1186 | //加入课堂成功,广播消息 | 1285 | //加入课堂成功,广播消息 |
| 1187 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); | 1286 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); |
| 1188 | - | ||
| 1189 | //加入音视频通话模块 | 1287 | //加入音视频通话模块 |
| 1190 | this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole}); | 1288 | this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole}); |
| 1191 | } | 1289 | } |
| @@ -2796,11 +2894,24 @@ export default class MessageEntrance extends Emiter { | @@ -2796,11 +2894,24 @@ export default class MessageEntrance extends Emiter { | ||
| 2796 | return; | 2894 | return; |
| 2797 | } | 2895 | } |
| 2798 | loger.log("设置appConfig",_params); | 2896 | loger.log("设置appConfig",_params); |
| 2799 | - GlobalConfig.appId=_params.appId||"eb253cc7b40c4a8b82f0a5b6f93c2ce0"; | 2897 | + if(GlobalConfig.appId){ |
| 2898 | + loger.log("本地已经设置appConfig,不需要再设置"); | ||
| 2899 | + return; | ||
| 2900 | + } | ||
| 2901 | + GlobalConfig.appId=_params.appId||""; | ||
| 2800 | GlobalConfig.appCertificate=_params.appCertificate||""; | 2902 | GlobalConfig.appCertificate=_params.appCertificate||""; |
| 2801 | GlobalConfig.appRecordingKey=_params.appRecordingKey||""; | 2903 | GlobalConfig.appRecordingKey=_params.appRecordingKey||""; |
| 2802 | GlobalConfig.recordInterfaces=_params.recordInterfaces||""; | 2904 | GlobalConfig.recordInterfaces=_params.recordInterfaces||""; |
| 2803 | - GlobalConfig.getChannelToken=_params.getChannelToken||""; | 2905 | + GlobalConfig.getChannelToken=_params.getChannelToken||"" |
| 2906 | + //去掉协议头 | ||
| 2907 | + if(GlobalConfig.recordInterfaces){ | ||
| 2908 | + GlobalConfig.recordInterfaces=GlobalConfig.recordInterfaces.replace('http://',""); | ||
| 2909 | + GlobalConfig.recordInterfaces=GlobalConfig.recordInterfaces.replace('https://',""); | ||
| 2910 | + } | ||
| 2911 | + if(GlobalConfig.getChannelToken){ | ||
| 2912 | + GlobalConfig.getChannelToken=GlobalConfig.getChannelToken.replace('http://',""); | ||
| 2913 | + GlobalConfig.getChannelToken=GlobalConfig.getChannelToken.replace('https://',""); | ||
| 2914 | + } | ||
| 2804 | } | 2915 | } |
| 2805 | //录制控制 | 2916 | //录制控制 |
| 2806 | _recordControl(_params){ | 2917 | _recordControl(_params){ |
| @@ -557,11 +557,11 @@ GlobalConfig.isHttps=false;//是否是https | @@ -557,11 +557,11 @@ GlobalConfig.isHttps=false;//是否是https | ||
| 557 | 557 | ||
| 558 | 558 | ||
| 559 | //webRtc | 559 | //webRtc |
| 560 | -GlobalConfig.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0'; | 560 | +GlobalConfig.appId = ''; |
| 561 | GlobalConfig.appCertificate = ""; | 561 | GlobalConfig.appCertificate = ""; |
| 562 | GlobalConfig.appRecordingKey = ""; | 562 | GlobalConfig.appRecordingKey = ""; |
| 563 | GlobalConfig.channelId = ""; | 563 | GlobalConfig.channelId = ""; |
| 564 | -GlobalConfig.channelKey = null; | 564 | +GlobalConfig.channelKey =""; |
| 565 | GlobalConfig.userUid = 0; | 565 | GlobalConfig.userUid = 0; |
| 566 | GlobalConfig.recordInterfaces="";//控制开启录制的接口 | 566 | GlobalConfig.recordInterfaces="";//控制开启录制的接口 |
| 567 | GlobalConfig.getChannelToken="";//获取token的地址 | 567 | GlobalConfig.getChannelToken="";//获取token的地址 |
| @@ -537,17 +537,79 @@ class Sass extends Emiter { | @@ -537,17 +537,79 @@ class Sass extends Emiter { | ||
| 537 | loger.error(`保存开始录制信息异常.状态码:${err}`); | 537 | loger.error(`保存开始录制信息异常.状态码:${err}`); |
| 538 | }); | 538 | }); |
| 539 | } | 539 | } |
| 540 | + //调用服务器端获取加入音视频通话模块的token | ||
| 541 | + getChannelKeyToken(_callback){ | ||
| 542 | + if(!GlobalConfig.getChannelToken){ | ||
| 543 | + loger.log("获取channelKey->失败->接口地址无效"); | ||
| 544 | + if(_callback){ | ||
| 545 | + _callback(null); | ||
| 546 | + } | ||
| 547 | + return; | ||
| 548 | + } | ||
| 549 | + /* let userIpInfo = { | ||
| 550 | + "appId": key.value, | ||
| 551 | + "appCertificate": channelKey.value, | ||
| 552 | + "channel": channel.value, | ||
| 553 | + "uid": userUid | ||
| 554 | + }*/ | ||
| 555 | + let url=GlobalConfig.locationProtocol+GlobalConfig.getChannelToken; | ||
| 556 | + fetch(encodeURI(url), { | ||
| 557 | + method: 'POST', | ||
| 558 | + headers: { | ||
| 559 | + "Content-Type": "application/x-www-form-urlencoded" | ||
| 560 | + }, | ||
| 561 | + body: `appId=${GlobalConfig.appId}&channel=${GlobalConfig.channelId}&appCertificate=${GlobalConfig.appCertificate}&uid=${GlobalConfig.userUid}`, | ||
| 562 | + timeout: 4000 | ||
| 563 | + }) | ||
| 564 | + .then(ret => { | ||
| 565 | + if (ret.ok) { | ||
| 566 | + return ret.json(); | ||
| 567 | + } else { | ||
| 568 | + loger.error(`获取channelKey-网络异常.状态码:${ret.status}`); | ||
| 569 | + if(_callback){ | ||
| 570 | + _callback(null); | ||
| 571 | + } | ||
| 572 | + throw ''; | ||
| 573 | + } | ||
| 574 | + }) | ||
| 575 | + .then(ret => { | ||
| 576 | + //channelKey :"005AQAoADZBQzk0M0UzMjVGQzgxREU5Njk1REUyRkVFMEYyMkRBRjFCRjIxN0QQANylukzO70ocgrNX9hlkNNWwKDdW9buDA68oN1YAAA==" | ||
| 577 | + // code: 200 | ||
| 578 | + // uid:"2882341273" | ||
| 579 | + if (ret.code == 200) { | ||
| 580 | + loger.log('获取channelKey 完成',ret); | ||
| 581 | + if(_callback){ | ||
| 582 | + _callback(ret); | ||
| 583 | + } | ||
| 584 | + } else { | ||
| 585 | + loger.warn('获取channelKey 失败.', ret); | ||
| 586 | + if(_callback){ | ||
| 587 | + _callback(null); | ||
| 588 | + } | ||
| 589 | + } | ||
| 590 | + }) | ||
| 591 | + .catch(err => { | ||
| 592 | + loger.error(`获取channelKey.状态码:${err}`); | ||
| 593 | + if(_callback){ | ||
| 594 | + _callback(null); | ||
| 595 | + } | ||
| 596 | + }); | ||
| 597 | + } | ||
| 598 | + | ||
| 540 | //调用服务器端开启录制 | 599 | //调用服务器端开启录制 |
| 541 | startServerRecord(){ | 600 | startServerRecord(){ |
| 542 | if(!GlobalConfig.recordInterfaces){ | 601 | if(!GlobalConfig.recordInterfaces){ |
| 543 | - loger.log("调用服务器端开启录制->失败->接口地址无效") | 602 | + loger.log("调用服务器端开启录制->失败->接口地址无效"); |
| 603 | + return; | ||
| 544 | } | 604 | } |
| 545 | - fetch(encodeURI(GlobalConfig.recordInterfaces), { | 605 | + //{"appId":"eb253cc7b40c4a8b82f0a5b6f93c2ce0","channel":"testcdn_580908347","channelKey":null,"uid":594312157} //录制的channelKey是appCertificate |
| 606 | + let url=GlobalConfig.locationProtocol+GlobalConfig.recordInterfaces; | ||
| 607 | + fetch(encodeURI(url), { | ||
| 546 | method: 'POST', | 608 | method: 'POST', |
| 547 | headers: { | 609 | headers: { |
| 548 | "Content-Type": "application/x-www-form-urlencoded" | 610 | "Content-Type": "application/x-www-form-urlencoded" |
| 549 | }, | 611 | }, |
| 550 | - body: `appID=${GlobalConfig.appId}&channel=${GlobalConfig.channelId}&channelKey=${GlobalConfig.channelKey}&uid=${GlobalConfig.userUid}`, | 612 | + body: `appId=${GlobalConfig.appId}&channel=${GlobalConfig.channelId}&channelKey=${GlobalConfig.appCertificate}&uid=${GlobalConfig.userUid}`, |
| 551 | timeout: 4000 | 613 | timeout: 4000 |
| 552 | }) | 614 | }) |
| 553 | .then(ret => { | 615 | .then(ret => { |
| @@ -559,9 +621,8 @@ class Sass extends Emiter { | @@ -559,9 +621,8 @@ class Sass extends Emiter { | ||
| 559 | } | 621 | } |
| 560 | }) | 622 | }) |
| 561 | .then(ret => { | 623 | .then(ret => { |
| 562 | - if (ret.errorCode === 0) { | ||
| 563 | - loger.log('调用服务器端开启录制 完成'); | ||
| 564 | - this._emit(Sass.CLASS_SAVE_RECORD_INFO_SUCCESS, _param); | 624 | + if (ret) { |
| 625 | + loger.log('调用服务器端开启录制完成',ret); | ||
| 565 | } else { | 626 | } else { |
| 566 | loger.warn('调用服务器端开启录制 失败.', ret); | 627 | loger.warn('调用服务器端开启录制 失败.', ret); |
| 567 | } | 628 | } |
| @@ -14,7 +14,7 @@ let loger = Loger.getLoger('WebRtcApe'); | @@ -14,7 +14,7 @@ let loger = Loger.getLoger('WebRtcApe'); | ||
| 14 | class WebRtcApe extends Emiter { | 14 | class WebRtcApe extends Emiter { |
| 15 | constructor() { | 15 | constructor() { |
| 16 | super(); | 16 | super(); |
| 17 | - this.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0'; | 17 | + this.appId = ''; |
| 18 | this.appCertificate = ""; | 18 | this.appCertificate = ""; |
| 19 | this.appRecordingKey = ""; | 19 | this.appRecordingKey = ""; |
| 20 | 20 | ||
| @@ -158,7 +158,7 @@ class WebRtcApe extends Emiter { | @@ -158,7 +158,7 @@ class WebRtcApe extends Emiter { | ||
| 158 | this.info =_params.info || ""; | 158 | this.info =_params.info || ""; |
| 159 | this.channelKey = _params.channelKey||null; | 159 | this.channelKey = _params.channelKey||null; |
| 160 | 160 | ||
| 161 | - loger.log("加入视频通话频道->channelId:"+this.channelId,"uid:"+this.uid); | 161 | + loger.log("开始加入视频通话频道->channelId:"+this.channelId,"uid:"+this.uid); |
| 162 | this.client.join(this.channelKey , ""+this.channelId, this.uid, (uid)=> { | 162 | this.client.join(this.channelKey , ""+this.channelId, this.uid, (uid)=> { |
| 163 | this.uid = uid; | 163 | this.uid = uid; |
| 164 | loger.log("加入视频通话频道->成功->channelId:"+this.channelId,"uid:"+this.uid); | 164 | loger.log("加入视频通话频道->成功->channelId:"+this.channelId,"uid:"+this.uid); |
| @@ -258,7 +258,7 @@ class WebRtcApe extends Emiter { | @@ -258,7 +258,7 @@ class WebRtcApe extends Emiter { | ||
| 258 | }); | 258 | }); |
| 259 | 259 | ||
| 260 | }, (err)=> { | 260 | }, (err)=> { |
| 261 | - loger.error("webRtc->推流->本地流开启失败", err); | 261 | + loger.warn("webRtc->推流->本地流开启失败", err); |
| 262 | this._emit(MessageTypes.WEB_RTC_PUBLISH_FAILED,err); | 262 | this._emit(MessageTypes.WEB_RTC_PUBLISH_FAILED,err); |
| 263 | }); | 263 | }); |
| 264 | } | 264 | } |
-
请 注册 或 登录 后发表评论