李勇

1.增加加入课堂的关键步骤输出;2.日志文件名增加角色身份和设备类型-> [身份]+设备+userId+nodeId.txt

@@ -58,7 +58,7 @@ export default class MessageEntrance extends Emiter { @@ -58,7 +58,7 @@ export default class MessageEntrance extends Emiter {
58 constructor() { 58 constructor() {
59 super(); 59 super();
60 //sdk 信息 60 //sdk 信息
61 - GlobalConfig.sdkVersion = "v1.75.0.20170815"; 61 + GlobalConfig.sdkVersion = "v1.76.2.20170818";
62 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); 62 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
63 63
64 //设置 64 //设置
@@ -496,8 +496,8 @@ export default class MessageEntrance extends Emiter { @@ -496,8 +496,8 @@ export default class MessageEntrance extends Emiter {
496 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM); 496 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM);
497 return; 497 return;
498 } 498 }
  499 + loger.warn('=====================STEP1=======================');
499 loger.log('初始化课堂->', _param); 500 loger.log('初始化课堂->', _param);
500 -  
501 //保存参数 501 //保存参数
502 GlobalConfig.isRecordPlayBack = false; //设置为非录制回放状态 502 GlobalConfig.isRecordPlayBack = false; //设置为非录制回放状态
503 GlobalConfig.classId = parseInt(_param.classId); 503 GlobalConfig.classId = parseInt(_param.classId);
@@ -511,7 +511,7 @@ export default class MessageEntrance extends Emiter { @@ -511,7 +511,7 @@ export default class MessageEntrance extends Emiter {
511 //H5处理 511 //H5处理
512 GlobalConfig.isH5 = _param.isH5 || false;//外部传入的参数,是否是H5 512 GlobalConfig.isH5 = _param.isH5 || false;//外部传入的参数,是否是H5
513 if (GlobalConfig.isH5 == true) { 513 if (GlobalConfig.isH5 == true) {
514 - GlobalConfig.platform = "H5"; 514 + GlobalConfig.platform = "h5";
515 GlobalConfig.deviceType = 3//3是H5 515 GlobalConfig.deviceType = 3//3是H5
516 loger.warn("设备类型是H5"); 516 loger.warn("设备类型是H5");
517 } 517 }
@@ -633,6 +633,7 @@ export default class MessageEntrance extends Emiter { @@ -633,6 +633,7 @@ export default class MessageEntrance extends Emiter {
633 //加载本地Server.json文件,UserIp获取ip信息,选点 633 //加载本地Server.json文件,UserIp获取ip信息,选点
634 loadServerJsonAndgetUserIpInfo() { 634 loadServerJsonAndgetUserIpInfo() {
635 let _this = this; 635 let _this = this;
  636 + loger.warn('=====================STEP6=======================');
636 if (_ipManager) { 637 if (_ipManager) {
637 //先加载本地Server.json文件,然后获取userIp新 638 //先加载本地Server.json文件,然后获取userIp新
638 _ipManager.loadServerJosn(function (_callbackData) { 639 _ipManager.loadServerJosn(function (_callbackData) {
@@ -682,6 +683,7 @@ export default class MessageEntrance extends Emiter { @@ -682,6 +683,7 @@ export default class MessageEntrance extends Emiter {
682 _startFirstTestBestServer() { 683 _startFirstTestBestServer() {
683 //加入课堂之前开始第一次选点 684 //加入课堂之前开始第一次选点
684 let _this = this; 685 let _this = this;
  686 + loger.warn('=====================STEP7=======================');
685 //推流地址测速 687 //推流地址测速
686 this._getFastestIpFromServer(GlobalConfig.msListFinal, 688 this._getFastestIpFromServer(GlobalConfig.msListFinal,
687 function (_data) { 689 function (_data) {
@@ -979,6 +981,7 @@ export default class MessageEntrance extends Emiter { @@ -979,6 +981,7 @@ export default class MessageEntrance extends Emiter {
979 981
980 //Sass校验流程结束之后,开始加入MCU 982 //Sass校验流程结束之后,开始加入MCU
981 _joinMCU() { 983 _joinMCU() {
  984 + loger.warn('=====================STEP8=======================');
982 loger.log('加入课堂->.'); 985 loger.log('加入课堂->.');
983 loger.warn("最终使用课堂服务信息->"); 986 loger.warn("最终使用课堂服务信息->");
984 loger.warn('MCU服务器地址->mcu->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort); 987 loger.warn('MCU服务器地址->mcu->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort);
@@ -1017,6 +1020,7 @@ export default class MessageEntrance extends Emiter { @@ -1017,6 +1020,7 @@ export default class MessageEntrance extends Emiter {
1017 // MCU 课堂成功 1020 // MCU 课堂成功
1018 _mcuJoinMCUClassSuccessHandler(_data) { 1021 _mcuJoinMCUClassSuccessHandler(_data) {
1019 //loger.log('MCU 课堂成功.'); 1022 //loger.log('MCU 课堂成功.');
  1023 + loger.warn('=====================STEP9=======================');
1020 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2); 1024 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2);
1021 GlobalConfig.classJoinSuccess = true; 1025 GlobalConfig.classJoinSuccess = true;
1022 1026
@@ -1090,9 +1094,10 @@ export default class MessageEntrance extends Emiter { @@ -1090,9 +1094,10 @@ export default class MessageEntrance extends Emiter {
1090 LogManager.classId = GlobalConfig.classId;//课堂号 1094 LogManager.classId = GlobalConfig.classId;//课堂号
1091 LogManager.userId = GlobalConfig.userId;//userId 1095 LogManager.userId = GlobalConfig.userId;//userId
1092 LogManager.nodeId = GlobalConfig.nodeId;//nodeId 1096 LogManager.nodeId = GlobalConfig.nodeId;//nodeId
  1097 + LogManager.userRole = GlobalConfig.userRole;//userRole
1093 LogManager.userName = GlobalConfig.userName;//用户名称 1098 LogManager.userName = GlobalConfig.userName;//用户名称
1094 LogManager.logUrl = GlobalConfig.logUrl;//日志服务器地址 //http://log.3mang.com 1099 LogManager.logUrl = GlobalConfig.logUrl;//日志服务器地址 //http://log.3mang.com
1095 - 1100 + LogManager.platform=GlobalConfig.platform;
1096 loger.log('加入课堂成功->'); 1101 loger.log('加入课堂成功->');
1097 loger.log(joinClassSuccessCallBackData); 1102 loger.log(joinClassSuccessCallBackData);
1098 1103
@@ -1595,30 +1600,6 @@ export default class MessageEntrance extends Emiter { @@ -1595,30 +1600,6 @@ export default class MessageEntrance extends Emiter {
1595 } catch (err) { 1600 } catch (err) {
1596 loger.error("从SASS获取的SERVER数据解析失败", err.message); 1601 loger.error("从SASS获取的SERVER数据解析失败", err.message);
1597 } 1602 }
1598 -  
1599 - /*  
1600 - if (_data.msList2) {  
1601 - GlobalConfig.setMsList(_data.msList2.msList); //储存Sass ms拉流地址  
1602 - GlobalConfig.setRtmpPullList(_data.msList2.rtmpPullArray); //储存Sass ms拉流地址  
1603 - GlobalConfig.setHlsPullList(_data.msList2.hlsPullArray); //储存Sass ms拉流地址  
1604 - GlobalConfig.setRsList(_data.msList2.rsList); //储存Sass 录制回放hls拉流地址  
1605 - }  
1606 - //Sass mcu  
1607 - GlobalConfig.setMcuList(_data.mcuList); //mcu  
1608 -  
1609 -  
1610 - loger.warn('从Sass获取的推流拉流列表数据:');  
1611 - loger.warn('Sass->msList->', GlobalConfig.msList);  
1612 - loger.warn('Sass->rtmpPullList->', GlobalConfig.rtmpPullList);  
1613 - loger.warn('Sass->hlsPullList->', GlobalConfig.hlsPullList);  
1614 - loger.warn('Sass->rsList->', GlobalConfig.rsList);  
1615 -  
1616 - //没有加载server.json之前,最终的服务列表按Sass的为准,server.json加载完成后会选点  
1617 - GlobalConfig.msListFinal=GlobalConfig.msList;  
1618 - GlobalConfig.rtmpPullListFinal=GlobalConfig.rtmpPullList;  
1619 - GlobalConfig.hlsListFinal=GlobalConfig.hlsPullList;  
1620 - GlobalConfig.rsListFinal=GlobalConfig.rsList;  
1621 - GlobalConfig.mcuListFinal=GlobalConfig.mcuList;*/  
1622 } 1603 }
1623 1604
1624 //课堂获取Sass数据完成 1605 //课堂获取Sass数据完成
@@ -129,12 +129,13 @@ class LogManager { @@ -129,12 +129,13 @@ class LogManager {
129 //console.log("上报的日志->", tempArr, msgData); 129 //console.log("上报的日志->", tempArr, msgData);
130 //需要过滤掉&字符,否则Sass无法取数据 130 //需要过滤掉&字符,否则Sass无法取数据
131 msgData=msgData.replace(/&/g,"#"); 131 msgData=msgData.replace(/&/g,"#");
  132 + const userRoleAndUserId="["+this.userRole+"]_"+this.platform+"__"+this.userId;//身份+userId
132 fetch(encodeURI(this.logUrl), { 133 fetch(encodeURI(this.logUrl), {
133 method: 'POST', 134 method: 'POST',
134 headers: { 135 headers: {
135 "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" 136 "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
136 }, 137 },
137 - body: `classId=${this.classId}&userId=${this.userId}&nodeId=${this.nodeId}&type=${msgType}&data=${msgData}`, 138 + body: `classId=${this.classId}&userId=${userRoleAndUserId}&nodeId=${this.nodeId}&type=${msgType}&data=${msgData}`,
138 timeout: 3000 139 timeout: 3000
139 }) 140 })
140 .then(ret => { 141 .then(ret => {
@@ -187,8 +188,9 @@ LogManager.classId = 0;//课堂号 @@ -187,8 +188,9 @@ LogManager.classId = 0;//课堂号
187 LogManager.userId = "";//userId 188 LogManager.userId = "";//userId
188 LogManager.nodeId = 0;//nodeId 189 LogManager.nodeId = 0;//nodeId
189 LogManager.userName = "";//用户名称 190 LogManager.userName = "";//用户名称
  191 +LogManager.userRole = "normal";//用户名称
190 LogManager.logUrl = "";//日志服务器地址 //http://log.3mang.com:8888 192 LogManager.logUrl = "";//日志服务器地址 //http://log.3mang.com:8888
191 - 193 +LogManager.platform="unknow";
192 LogManager.ERROR = 1; 194 LogManager.ERROR = 1;
193 LogManager.WARN = 2; 195 LogManager.WARN = 2;
194 LogManager.LOG = 3; 196 LogManager.LOG = 3;
@@ -42,7 +42,6 @@ class Sass extends Emiter { @@ -42,7 +42,6 @@ class Sass extends Emiter {
42 let url = `${GlobalConfig.locationProtocol+_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`; 42 let url = `${GlobalConfig.locationProtocol+_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`;
43 loger.log('1.初始化init获取课堂校验信息.'); 43 loger.log('1.初始化init获取课堂校验信息.');
44 loger.log(url); 44 loger.log(url);
45 - loger.log(_initInfo);  
46 fetch(url, { 45 fetch(url, {
47 timeout: 5000 46 timeout: 5000
48 }) 47 })
@@ -88,6 +87,7 @@ class Sass extends Emiter { @@ -88,6 +87,7 @@ class Sass extends Emiter {
88 87
89 // Sass校验开始-->密码校验(如果需要密码)--->MD5校验---------------------------------------------------- 88 // Sass校验开始-->密码校验(如果需要密码)--->MD5校验----------------------------------------------------
90 passwordAndMd5Checking(_param) { 89 passwordAndMd5Checking(_param) {
  90 + loger.log('=====================STEP2=======================');
91 loger.log('2.开始Sass校验'); 91 loger.log('2.开始Sass校验');
92 loger.log(_param); 92 loger.log(_param);
93 confInfo = _param; 93 confInfo = _param;
@@ -121,6 +121,7 @@ class Sass extends Emiter { @@ -121,6 +121,7 @@ class Sass extends Emiter {
121 //let url = `http://${confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.classId}&isTeacher=${isTeacher}&password=${confInfo.password}`; 121 //let url = `http://${confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.classId}&isTeacher=${isTeacher}&password=${confInfo.password}`;
122 let url = `${GlobalConfig.locationProtocol+confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.classId}&isTeacher=${isTeacher}&password=${confInfo.password}`; 122 let url = `${GlobalConfig.locationProtocol+confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.classId}&isTeacher=${isTeacher}&password=${confInfo.password}`;
123 123
  124 + loger.log('=====================STEP3=======================');
124 loger.log('3.课堂密码校验', url); 125 loger.log('3.课堂密码校验', url);
125 fetch(url, { 126 fetch(url, {
126 timeout: 5000 127 timeout: 5000
@@ -160,6 +161,7 @@ class Sass extends Emiter { @@ -160,6 +161,7 @@ class Sass extends Emiter {
160 // let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.classId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`; 161 // let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.classId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`;
161 let url = `${GlobalConfig.locationProtocol+confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.classId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`; 162 let url = `${GlobalConfig.locationProtocol+confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.classId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`;
162 163
  164 + loger.log('=====================STEP4=======================');
163 loger.log('4.MD5校验', url); 165 loger.log('4.MD5校验', url);
164 fetch(url, { 166 fetch(url, {
165 timeout: 5000 167 timeout: 5000
@@ -246,6 +248,7 @@ class Sass extends Emiter { @@ -246,6 +248,7 @@ class Sass extends Emiter {
246 //let url = `http://${GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}&timestamp=${timestamp}&authId=${authId}`; 248 //let url = `http://${GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}&timestamp=${timestamp}&authId=${authId}`;
247 let url = `${GlobalConfig.locationProtocol+GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}&timestamp=${timestamp}&authId=${authId}`; 249 let url = `${GlobalConfig.locationProtocol+GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}&timestamp=${timestamp}&authId=${authId}`;
248 250
  251 + loger.log('=====================STEP5=======================');
249 loger.log('5.获取课堂课堂的完整信息 '); 252 loger.log('5.获取课堂课堂的完整信息 ');
250 loger.log(url); 253 loger.log(url);
251 fetch(url, { 254 fetch(url, {
@@ -16,18 +16,19 @@ class SystemConfig { @@ -16,18 +16,19 @@ class SystemConfig {
16 GlobalConfig.isMobile = mdetect.isMobileUA(); 16 GlobalConfig.isMobile = mdetect.isMobileUA();
17 if (GlobalConfig.isMobile) { 17 if (GlobalConfig.isMobile) {
18 loger.warn("当前设备是移动设备"); 18 loger.warn("当前设备是移动设备");
19 - GlobalConfig.platform = 3;//移动设备,不是ios和安卓就当H5处理 19 + GlobalConfig.platform = "h5";//移动设备,不是ios和安卓就当H5处理
20 GlobalConfig.deviceType = 3; 20 GlobalConfig.deviceType = 3;
21 } else { 21 } else {
22 loger.warn("当前设备是PC"); 22 loger.warn("当前设备是PC");
23 - GlobalConfig.platform = 0 23 + GlobalConfig.platform = "pc";
24 GlobalConfig.deviceType = 0; 24 GlobalConfig.deviceType = 0;
25 } 25 }
26 if (mdetect.isIOS()) { 26 if (mdetect.isIOS()) {
  27 + GlobalConfig.platform = "ios";
27 GlobalConfig.deviceType = 1; //"ios"; 28 GlobalConfig.deviceType = 1; //"ios";
28 } 29 }
29 if (mdetect.isAndroid()) { 30 if (mdetect.isAndroid()) {
30 - GlobalConfig.platform = 2; //"android"; 31 + GlobalConfig.platform = "android"; //"android";
31 GlobalConfig.deviceType = 2; //"ios"; 32 GlobalConfig.deviceType = 2; //"ios";
32 } 33 }
33 34