李勇

1.修改3个接口的回调方法,改为事件监听:初始化课堂成功、加入课堂成功、ERROR异常 3个事件监听

2.修改定义MessageType中的事件id定义,统一为数字的String
@@ -71,7 +71,7 @@ export default class MessageEntrance extends Emiter { @@ -71,7 +71,7 @@ export default class MessageEntrance extends Emiter {
71 // 底层MCU消息层 71 // 底层MCU消息层
72 _mcu = Mcu; 72 _mcu = Mcu;
73 _mcu.on('*', (type, data) => this._emit(type, data)); 73 _mcu.on('*', (type, data) => this._emit(type, data));
74 - _mcu.on(MessageTypes.CLASS_JOIN_SUCCESS, this._mcuJoinClassSuccessHandler.bind(this));//加入MCU会议完成 74 + _mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuJoinMCUClassSuccessHandler.bind(this));//加入MCU会议完成
75 75
76 76
77 // 注册所有应用Ape 77 // 注册所有应用Ape
@@ -89,11 +89,11 @@ export default class MessageEntrance extends Emiter { @@ -89,11 +89,11 @@ export default class MessageEntrance extends Emiter {
89 89
90 _video_ape = new VideoApe(); 90 _video_ape = new VideoApe();
91 _video_ape.on('*', (type, data) => this._emit(type, data)); 91 _video_ape.on('*', (type, data) => this._emit(type, data));
92 - _video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this)); 92 + //_video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));
93 93
94 _audio_ape= new AudioApe(); 94 _audio_ape= new AudioApe();
95 _audio_ape.on('*', (type, data) => this._emit(type, data)); 95 _audio_ape.on('*', (type, data) => this._emit(type, data));
96 - _audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this)); 96 + //_audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));
97 97
98 _whiteboard_ape = new WhiteBoardApe(); 98 _whiteboard_ape = new WhiteBoardApe();
99 _whiteboard_ape.on('*', (type, data) => this._emit(type, data)); 99 _whiteboard_ape.on('*', (type, data) => this._emit(type, data));
@@ -159,12 +159,15 @@ export default class MessageEntrance extends Emiter { @@ -159,12 +159,15 @@ export default class MessageEntrance extends Emiter {
159 159
160 //mcu异常监听 160 //mcu异常监听
161 _mcuErrorHandler(_data, _option) { 161 _mcuErrorHandler(_data, _option) {
162 - if (_mcuErrorCallBackFun) {  
163 - let option = _option || "";  
164 - let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option};  
165 - loger.error("MCU_ERROR", errorMessage); 162 + let option = _option || "";
  163 + let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option};
  164 + loger.error("MCU_ERROR", errorMessage);
  165 +
  166 + this._emit(MessageTypes.ERROR,errorMessage);
  167 +
  168 +/* if (_mcuErrorCallBackFun) {
166 _mcuErrorCallBackFun(errorMessage); 169 _mcuErrorCallBackFun(errorMessage);
167 - } 170 + }*/
168 } 171 }
169 172
170 //获取当前的状态 173 //获取当前的状态
@@ -253,7 +256,7 @@ export default class MessageEntrance extends Emiter { @@ -253,7 +256,7 @@ export default class MessageEntrance extends Emiter {
253 _mcuErrorCallBackFun = _mcuErrorCallBack; 256 _mcuErrorCallBackFun = _mcuErrorCallBack;
254 //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0} 257 //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0}
255 //判断传入的参数是否存在 258 //判断传入的参数是否存在
256 - if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null || _mcuErrorCallBack == null) { 259 + if (_param == null || EngineUtils.isEmptyObject(_param)) {
257 loger.error('init初始化失败,参数错误'); 260 loger.error('init初始化失败,参数错误');
258 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM); 261 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM);
259 return; 262 return;
@@ -283,7 +286,7 @@ export default class MessageEntrance extends Emiter { @@ -283,7 +286,7 @@ export default class MessageEntrance extends Emiter {
283 _joinClass(_param, _onSuccess) { 286 _joinClass(_param, _onSuccess) {
284 _joinClassSuccessCallBackFun = _onSuccess; 287 _joinClassSuccessCallBackFun = _onSuccess;
285 //{"userName":"名字","password":""} 288 //{"userName":"名字","password":""}
286 - if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null) { 289 + if (_param == null || EngineUtils.isEmptyObject(_param)) {
287 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_JOIN_PARAM); 290 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_JOIN_PARAM);
288 loger.log('不能进入会议,传递的参数不对.', _param); 291 loger.log('不能进入会议,传递的参数不对.', _param);
289 return; 292 return;
@@ -324,25 +327,27 @@ export default class MessageEntrance extends Emiter { @@ -324,25 +327,27 @@ export default class MessageEntrance extends Emiter {
324 327
325 //设置当前的会议状态 328 //设置当前的会议状态
326 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1); 329 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1);
  330 + //返回给客户端初始化成功的数据
  331 + let initSuccessCallBackData = {};
  332 + initSuccessCallBackData.siteId = GlobalConfig.siteId;
  333 + initSuccessCallBackData.classId = GlobalConfig.classId;
  334 + initSuccessCallBackData.userRole = GlobalConfig.userRole;
  335 + initSuccessCallBackData.userId = GlobalConfig.userId;
  336 + initSuccessCallBackData.classType = GlobalConfig.classType;
  337 +
  338 + //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
  339 + if (GlobalConfig.userRole== ApeConsts.host) {
  340 + initSuccessCallBackData.passwordRequired =true;
  341 + } else {
  342 + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
  343 + }
327 344
328 - if (_initSuccessCallBackFun) {  
329 - //返回给客户端初始化成功的数据  
330 - let initSuccessCallBackData = {};  
331 - initSuccessCallBackData.siteId = GlobalConfig.siteId;  
332 - initSuccessCallBackData.classId = GlobalConfig.classId;  
333 - initSuccessCallBackData.userRole = GlobalConfig.userRole;  
334 - initSuccessCallBackData.userId = GlobalConfig.userId;  
335 - initSuccessCallBackData.classType = GlobalConfig.classType;  
336 -  
337 - //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的  
338 - if (GlobalConfig.userRole== ApeConsts.host) {  
339 - initSuccessCallBackData.passwordRequired =true;  
340 - } else {  
341 - initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;  
342 - } 345 + this._emit(MessageTypes.CLASS_INIT_SUCCESS,initSuccessCallBackData);
343 346
  347 +/* if (_initSuccessCallBackFun) {
344 _initSuccessCallBackFun(initSuccessCallBackData); 348 _initSuccessCallBackFun(initSuccessCallBackData);
345 - } 349 + }*/
  350 +
346 } 351 }
347 352
348 // 通过SASS平台验证(密码和MD5) 353 // 通过SASS平台验证(密码和MD5)
@@ -566,50 +571,54 @@ export default class MessageEntrance extends Emiter { @@ -566,50 +571,54 @@ export default class MessageEntrance extends Emiter {
566 } 571 }
567 572
568 // MCU 会议成功 573 // MCU 会议成功
569 - _mcuJoinClassSuccessHandler(_data) { 574 + _mcuJoinMCUClassSuccessHandler(_data) {
570 loger.log('MCU 会议成功.'); 575 loger.log('MCU 会议成功.');
571 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2); 576 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2);
572 577
573 - //返回给客户数据 578 + //返回给客户端初始化成功的数据
  579 + let initSuccessCallBackData = {};
  580 +
  581 + initSuccessCallBackData.DOCServerIP =GlobalConfig.DOCServerIP;
  582 + initSuccessCallBackData.DOCServerPort =GlobalConfig.DOCServerPort;
  583 +
  584 + initSuccessCallBackData.classId = GlobalConfig.classId;
  585 + initSuccessCallBackData.className = GlobalConfig.className;
  586 + initSuccessCallBackData.h5Module = GlobalConfig.h5Module;
  587 + initSuccessCallBackData.isHost = GlobalConfig.isHost;
  588 + initSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;
  589 + initSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;
  590 + initSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay;
  591 +
  592 + initSuccessCallBackData.msType = GlobalConfig.msType;
  593 + initSuccessCallBackData.nodeId = GlobalConfig.nodeId;
  594 + initSuccessCallBackData.password = GlobalConfig.password;
  595 + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true
  596 + //GlobalConfig.passwordRequired 老师的默认是true
  597 + //GlobalConfig.portal=_data.portal;
  598 + initSuccessCallBackData.role = GlobalConfig.role;
  599 + initSuccessCallBackData.siteId = GlobalConfig.siteId;
  600 + initSuccessCallBackData.topNodeID = GlobalConfig.topNodeID;
  601 + initSuccessCallBackData.userId = GlobalConfig.userId;
  602 + initSuccessCallBackData.userName = GlobalConfig.userName;
  603 + initSuccessCallBackData.userRole = GlobalConfig.userRole;
  604 + initSuccessCallBackData.userType = GlobalConfig.userType;
  605 +
  606 + initSuccessCallBackData.siteId = GlobalConfig.siteId;
  607 + initSuccessCallBackData.classId = GlobalConfig.classId;
  608 + initSuccessCallBackData.userRole = GlobalConfig.userRole;
  609 + initSuccessCallBackData.userId = GlobalConfig.userId;
  610 + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
  611 + initSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;
  612 + loger.log('加入会议成功');
  613 + console.log(initSuccessCallBackData);
  614 +
  615 + //加入会议成功,广播消息
  616 + this._emit(MessageTypes.CLASS_JOIN_SUCCESS,initSuccessCallBackData);
  617 +
  618 +/* //返回给客户数据
574 if (_joinClassSuccessCallBackFun) { 619 if (_joinClassSuccessCallBackFun) {
575 - //返回给客户端初始化成功的数据  
576 - let initSuccessCallBackData = {};  
577 -  
578 - initSuccessCallBackData.DOCServerIP =GlobalConfig.DOCServerIP;  
579 - initSuccessCallBackData.DOCServerPort =GlobalConfig.DOCServerPort;  
580 -  
581 - initSuccessCallBackData.classId = GlobalConfig.classId;  
582 - initSuccessCallBackData.className = GlobalConfig.className;  
583 - initSuccessCallBackData.h5Module = GlobalConfig.h5Module;  
584 - initSuccessCallBackData.isHost = GlobalConfig.isHost;  
585 - initSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;  
586 - initSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;  
587 - initSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay;  
588 -  
589 - initSuccessCallBackData.msType = GlobalConfig.msType;  
590 - initSuccessCallBackData.nodeId = GlobalConfig.nodeId;  
591 - initSuccessCallBackData.password = GlobalConfig.password;  
592 - initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true  
593 - //GlobalConfig.passwordRequired 老师的默认是true  
594 - //GlobalConfig.portal=_data.portal;  
595 - initSuccessCallBackData.role = GlobalConfig.role;  
596 - initSuccessCallBackData.siteId = GlobalConfig.siteId;  
597 - initSuccessCallBackData.topNodeID = GlobalConfig.topNodeID;  
598 - initSuccessCallBackData.userId = GlobalConfig.userId;  
599 - initSuccessCallBackData.userName = GlobalConfig.userName;  
600 - initSuccessCallBackData.userRole = GlobalConfig.userRole;  
601 - initSuccessCallBackData.userType = GlobalConfig.userType;  
602 -  
603 - initSuccessCallBackData.siteId = GlobalConfig.siteId;  
604 - initSuccessCallBackData.classId = GlobalConfig.classId;  
605 - initSuccessCallBackData.userRole = GlobalConfig.userRole;  
606 - initSuccessCallBackData.userId = GlobalConfig.userId;  
607 - initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;  
608 - initSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;  
609 - loger.log('加入会议成功');  
610 - console.log(initSuccessCallBackData);  
611 _joinClassSuccessCallBackFun(initSuccessCallBackData); 620 _joinClassSuccessCallBackFun(initSuccessCallBackData);
612 - } 621 + }*/
613 } 622 }
614 623
615 //Sass删除文档数据 624 //Sass删除文档数据
@@ -6,49 +6,50 @@ function MessageTypes() {} @@ -6,49 +6,50 @@ function MessageTypes() {}
6 6
7 //--------------------事件相关的定义-------------------------------------- 7 //--------------------事件相关的定义--------------------------------------
8 //初始化相关事件定义 8 //初始化相关事件定义
9 -//MessageTypes.CLASS_INIT_SUCCESS='class.init.success';//初始化成功 9 +MessageTypes.CLASS_INIT_SUCCESS="100";//'class.init.success';//初始化成功
10 //MessageTypes.CLASS_INIT_FAILED='class.init.failed';//初始化失败 10 //MessageTypes.CLASS_INIT_FAILED='class.init.failed';//初始化失败
11 11
12 //加入会议相关事件定义 12 //加入会议相关事件定义
13 -MessageTypes.CLASS_JOIN_SUCCESS = 'join.class.success'; 13 +MessageTypes.CLASS_JOIN_MCU_SUCCESS ="210"// 'join.mcu.success';
14 //MessageTypes.CLASS_JOIN_FAILED = 'join.class.failed'; 14 //MessageTypes.CLASS_JOIN_FAILED = 'join.class.failed';
15 15
16 //会议信息和操作事件定义 16 //会议信息和操作事件定义
17 //MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message'; 17 //MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message';
18 -MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message';  
19 -MessageTypes.CLASS_INSERT_ROSTER = 'roster.insert.message';  
20 -MessageTypes.CLASS_DELETE_ROSTER = 'roster.delete.message';  
21 -MessageTypes.CLASS_NONENTITY_ROSTER = 'roster.nonentity.message'; 18 +MessageTypes.CLASS_JOIN_SUCCESS ="200"// 'join.class.success';
  19 +MessageTypes.CLASS_SHOW_ROSTER_NUM ="201";// 'roster_num.message';
  20 +MessageTypes.CLASS_INSERT_ROSTER ="202";// 'roster.insert.message';
  21 +MessageTypes.CLASS_DELETE_ROSTER ="203"// 'roster.delete.message';
  22 +MessageTypes.CLASS_NONENTITY_ROSTER ="204";// 'roster.nonentity.message';
22 23
23 -MessageTypes.CLASS_EXIT = 'class.exit';//退出 关闭会议  
24 -MessageTypes.CLASS_UPTATE_STATUS = 'class.update.status';//更新会议状态信息  
25 -MessageTypes.CLASS_STATUS_INFO_CHANGE= 'class.status.info.change';//会议状态信息发生改变,需要保存数据到sass和同步MCU 24 +MessageTypes.CLASS_EXIT ="205";// 'class.exit';//退出 关闭会议
  25 +MessageTypes.CLASS_UPTATE_STATUS ="206";// 'class.update.status';//更新会议状态信息
  26 +MessageTypes.CLASS_STATUS_INFO_CHANGE="207";// 'class.status.info.change';//会议状态信息发生改变,需要保存数据到sass和同步MCU
26 27
27 -MessageTypes.CLASS_UPDATE_TIMER='class.update.timer';//更新当前上课的时间 28 +MessageTypes.CLASS_UPDATE_TIMER="208";//'class.update.timer';//更新当前上课的时间
28 29
29 -MessageTypes.CLASS_RECORD_START='class.record.start';//开始录制 30 +MessageTypes.CLASS_RECORD_START="209";//'class.record.start';//开始录制
30 31
31 32
32 33
33 //聊天模块事件定义 34 //聊天模块事件定义
34 -MessageTypes.CHAT_RECEIVE = 'chat.receive'; 35 +MessageTypes.CHAT_RECEIVE ="300";// 'chat.receive';
35 36
36 //视频模块事件定义 37 //视频模块事件定义
37 -MessageTypes.VIDEO_PLAY = 'video.play';//播放视频  
38 -MessageTypes.VIDEO_STOP = 'video.stop';//停止视频  
39 -MessageTypes.VIDEO_UPDATE = 'video.update';  
40 -MessageTypes.VIDEO_BROADCAST= 'video.broadcast'; 38 +MessageTypes.VIDEO_PLAY ="400";// 'video.play';//播放视频
  39 +MessageTypes.VIDEO_STOP ="401"; //'video.stop';//停止视频
  40 +MessageTypes.VIDEO_UPDATE ="402";// 'video.update';//废弃,400、401取代
  41 +MessageTypes.VIDEO_BROADCAST= "403";//'video.broadcast';
41 42
42 //音频模块事件定义 43 //音频模块事件定义
43 -MessageTypes.AUDIO_PLAY = 'audio.play';//播放  
44 -MessageTypes.AUDIO_STOP = 'audio.stop';//停止  
45 -MessageTypes.AUDIO_UPDATE = 'audio.update';  
46 -MessageTypes.AUDIO_BROADCAST= 'audio.broadcast'; 44 +MessageTypes.AUDIO_PLAY ="500";// 'audio.play';//播放
  45 +MessageTypes.AUDIO_STOP = "501";//'audio.stop';//停止
  46 +MessageTypes.AUDIO_UPDATE = "502";//'audio.update';
  47 +MessageTypes.AUDIO_BROADCAST= "503";//'audio.broadcast';
47 48
48 49
49 //文档模块事件定义 50 //文档模块事件定义
50 -MessageTypes.DOC_DELETE='document.delete';//删除文档  
51 -MessageTypes.DOC_UPDATE = 'document.update';//更新文档(添加、变更) 51 +MessageTypes.DOC_DELETE="600";//'document.delete';//删除文档
  52 +MessageTypes.DOC_UPDATE ="601";// 'document.update';//更新文档(添加、变更)
52 //MessageTypes.DOC_SHOW = 'document.show'; 53 //MessageTypes.DOC_SHOW = 'document.show';
53 //MessageTypes.DOC_UPLOAD='document.upload';//上传文档 54 //MessageTypes.DOC_UPLOAD='document.upload';//上传文档
54 //MessageTypes.DOC_COMMAND='document.command';//操作文档 55 //MessageTypes.DOC_COMMAND='document.command';//操作文档
@@ -59,18 +60,15 @@ MessageTypes.DOC_UPDATE = 'document.update';//更新文档(添加、变更) @@ -59,18 +60,15 @@ MessageTypes.DOC_UPDATE = 'document.update';//更新文档(添加、变更)
59 60
60 61
61 //白板笔记事件定义 62 //白板笔记事件定义
62 -MessageTypes.WHITEBOARD_ANNOTATION_UPDATE = 'whiteboard.annotation.update'; 63 +MessageTypes.WHITEBOARD_ANNOTATION_UPDATE ="700";// 'whiteboard.annotation.update';
63 //MessageTypes.WHITEBOARD_ANNOTAION_INSERT = 'whiteboard.annotation.insert'; 64 //MessageTypes.WHITEBOARD_ANNOTAION_INSERT = 'whiteboard.annotation.insert';
64 //MessageTypes.WHITEBOARD_ANNOTAION_DELETE = 'whiteboard.annotation.delete'; 65 //MessageTypes.WHITEBOARD_ANNOTAION_DELETE = 'whiteboard.annotation.delete';
65 //MessageTypes.WHITEBOARD_ANNOTATION_CLEAR = 'whiteboard.annotation.clear'; 66 //MessageTypes.WHITEBOARD_ANNOTATION_CLEAR = 'whiteboard.annotation.clear';
66 67
67 68
68 -//音频  
69 -MessageTypes.AUDIO_RECEIVE='audio.receive';  
70 -  
71 -  
72 //错误事件定义 69 //错误事件定义
73 -MessageTypes.MCU_ERROR ="mcuError";//MCU错误 70 +MessageTypes.MCU_ERROR ="1000";//"mcuError";//MCU错误(内部使用)
  71 +MessageTypes.ERROR="1100";//外部监听错误的消息ID(外部使用)
74 72
75 73
76 //---------------错误消息 ErrorCode 定义------------------------------------------------- 74 //---------------错误消息 ErrorCode 定义-------------------------------------------------
@@ -54,7 +54,7 @@ export default class Ape extends Emiter { @@ -54,7 +54,7 @@ export default class Ape extends Emiter {
54 54
55 // 监听底层MCU会议 55 // 监听底层MCU会议
56 this.mcu = mcu; 56 this.mcu = mcu;
57 - this.mcu.on(MessageTypes.CLASS_JOIN_SUCCESS, this._mcuConferenceJoinSuccessHandler.bind(this)); 57 + this.mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuConferenceJoinSuccessHandler.bind(this));
58 this.mcu.registerApe(this); 58 this.mcu.registerApe(this);
59 } 59 }
60 60
@@ -98,7 +98,7 @@ class MCU extends Emiter { @@ -98,7 +98,7 @@ class MCU extends Emiter {
98 case PduConsts.RET_SUCCESS: 98 case PduConsts.RET_SUCCESS:
99 //加入成功 99 //加入成功
100 this._updateMCUConfInfoDescription(joinConfPdu.classDescription); 100 this._updateMCUConfInfoDescription(joinConfPdu.classDescription);
101 - this._emit(MessageTypes.CLASS_JOIN_SUCCESS, this.classInfo); 101 + this._emit(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this.classInfo);
102 break; 102 break;
103 case PduConsts.RET_FULL_CAPACITY: 103 case PduConsts.RET_FULL_CAPACITY:
104 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_FULL); 104 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_FULL);