李勇

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

2.修改定义MessageType中的事件id定义,统一为数字的String
... ... @@ -71,7 +71,7 @@ export default class MessageEntrance extends Emiter {
// 底层MCU消息层
_mcu = Mcu;
_mcu.on('*', (type, data) => this._emit(type, data));
_mcu.on(MessageTypes.CLASS_JOIN_SUCCESS, this._mcuJoinClassSuccessHandler.bind(this));//加入MCU会议完成
_mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuJoinMCUClassSuccessHandler.bind(this));//加入MCU会议完成
// 注册所有应用Ape
... ... @@ -89,11 +89,11 @@ export default class MessageEntrance extends Emiter {
_video_ape = new VideoApe();
_video_ape.on('*', (type, data) => this._emit(type, data));
_video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));
//_video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));
_audio_ape= new AudioApe();
_audio_ape.on('*', (type, data) => this._emit(type, data));
_audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));
//_audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));
_whiteboard_ape = new WhiteBoardApe();
_whiteboard_ape.on('*', (type, data) => this._emit(type, data));
... ... @@ -159,12 +159,15 @@ export default class MessageEntrance extends Emiter {
//mcu异常监听
_mcuErrorHandler(_data, _option) {
if (_mcuErrorCallBackFun) {
let option = _option || "";
let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option};
loger.error("MCU_ERROR", errorMessage);
let option = _option || "";
let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option};
loger.error("MCU_ERROR", errorMessage);
this._emit(MessageTypes.ERROR,errorMessage);
/* if (_mcuErrorCallBackFun) {
_mcuErrorCallBackFun(errorMessage);
}
}*/
}
//获取当前的状态
... ... @@ -253,7 +256,7 @@ export default class MessageEntrance extends Emiter {
_mcuErrorCallBackFun = _mcuErrorCallBack;
//{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0}
//判断传入的参数是否存在
if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null || _mcuErrorCallBack == null) {
if (_param == null || EngineUtils.isEmptyObject(_param)) {
loger.error('init初始化失败,参数错误');
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM);
return;
... ... @@ -283,7 +286,7 @@ export default class MessageEntrance extends Emiter {
_joinClass(_param, _onSuccess) {
_joinClassSuccessCallBackFun = _onSuccess;
//{"userName":"名字","password":""}
if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null) {
if (_param == null || EngineUtils.isEmptyObject(_param)) {
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_JOIN_PARAM);
loger.log('不能进入会议,传递的参数不对.', _param);
return;
... ... @@ -324,25 +327,27 @@ export default class MessageEntrance extends Emiter {
//设置当前的会议状态
GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1);
//返回给客户端初始化成功的数据
let initSuccessCallBackData = {};
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.classType = GlobalConfig.classType;
//host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
if (GlobalConfig.userRole== ApeConsts.host) {
initSuccessCallBackData.passwordRequired =true;
} else {
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
}
if (_initSuccessCallBackFun) {
//返回给客户端初始化成功的数据
let initSuccessCallBackData = {};
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.classType = GlobalConfig.classType;
//host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
if (GlobalConfig.userRole== ApeConsts.host) {
initSuccessCallBackData.passwordRequired =true;
} else {
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
}
this._emit(MessageTypes.CLASS_INIT_SUCCESS,initSuccessCallBackData);
/* if (_initSuccessCallBackFun) {
_initSuccessCallBackFun(initSuccessCallBackData);
}
}*/
}
// 通过SASS平台验证(密码和MD5)
... ... @@ -566,50 +571,54 @@ export default class MessageEntrance extends Emiter {
}
// MCU 会议成功
_mcuJoinClassSuccessHandler(_data) {
_mcuJoinMCUClassSuccessHandler(_data) {
loger.log('MCU 会议成功.');
GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2);
//返回给客户数据
//返回给客户端初始化成功的数据
let initSuccessCallBackData = {};
initSuccessCallBackData.DOCServerIP =GlobalConfig.DOCServerIP;
initSuccessCallBackData.DOCServerPort =GlobalConfig.DOCServerPort;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.className = GlobalConfig.className;
initSuccessCallBackData.h5Module = GlobalConfig.h5Module;
initSuccessCallBackData.isHost = GlobalConfig.isHost;
initSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;
initSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;
initSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay;
initSuccessCallBackData.msType = GlobalConfig.msType;
initSuccessCallBackData.nodeId = GlobalConfig.nodeId;
initSuccessCallBackData.password = GlobalConfig.password;
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true
//GlobalConfig.passwordRequired 老师的默认是true
//GlobalConfig.portal=_data.portal;
initSuccessCallBackData.role = GlobalConfig.role;
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.topNodeID = GlobalConfig.topNodeID;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.userName = GlobalConfig.userName;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userType = GlobalConfig.userType;
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
initSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;
loger.log('加入会议成功');
console.log(initSuccessCallBackData);
//加入会议成功,广播消息
this._emit(MessageTypes.CLASS_JOIN_SUCCESS,initSuccessCallBackData);
/* //返回给客户数据
if (_joinClassSuccessCallBackFun) {
//返回给客户端初始化成功的数据
let initSuccessCallBackData = {};
initSuccessCallBackData.DOCServerIP =GlobalConfig.DOCServerIP;
initSuccessCallBackData.DOCServerPort =GlobalConfig.DOCServerPort;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.className = GlobalConfig.className;
initSuccessCallBackData.h5Module = GlobalConfig.h5Module;
initSuccessCallBackData.isHost = GlobalConfig.isHost;
initSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;
initSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;
initSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay;
initSuccessCallBackData.msType = GlobalConfig.msType;
initSuccessCallBackData.nodeId = GlobalConfig.nodeId;
initSuccessCallBackData.password = GlobalConfig.password;
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true
//GlobalConfig.passwordRequired 老师的默认是true
//GlobalConfig.portal=_data.portal;
initSuccessCallBackData.role = GlobalConfig.role;
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.topNodeID = GlobalConfig.topNodeID;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.userName = GlobalConfig.userName;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userType = GlobalConfig.userType;
initSuccessCallBackData.siteId = GlobalConfig.siteId;
initSuccessCallBackData.classId = GlobalConfig.classId;
initSuccessCallBackData.userRole = GlobalConfig.userRole;
initSuccessCallBackData.userId = GlobalConfig.userId;
initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
initSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;
loger.log('加入会议成功');
console.log(initSuccessCallBackData);
_joinClassSuccessCallBackFun(initSuccessCallBackData);
}
}*/
}
//Sass删除文档数据
... ...
... ... @@ -6,49 +6,50 @@ function MessageTypes() {}
//--------------------事件相关的定义--------------------------------------
//初始化相关事件定义
//MessageTypes.CLASS_INIT_SUCCESS='class.init.success';//初始化成功
MessageTypes.CLASS_INIT_SUCCESS="100";//'class.init.success';//初始化成功
//MessageTypes.CLASS_INIT_FAILED='class.init.failed';//初始化失败
//加入会议相关事件定义
MessageTypes.CLASS_JOIN_SUCCESS = 'join.class.success';
MessageTypes.CLASS_JOIN_MCU_SUCCESS ="210"// 'join.mcu.success';
//MessageTypes.CLASS_JOIN_FAILED = 'join.class.failed';
//会议信息和操作事件定义
//MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message';
MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message';
MessageTypes.CLASS_INSERT_ROSTER = 'roster.insert.message';
MessageTypes.CLASS_DELETE_ROSTER = 'roster.delete.message';
MessageTypes.CLASS_NONENTITY_ROSTER = 'roster.nonentity.message';
MessageTypes.CLASS_JOIN_SUCCESS ="200"// 'join.class.success';
MessageTypes.CLASS_SHOW_ROSTER_NUM ="201";// 'roster_num.message';
MessageTypes.CLASS_INSERT_ROSTER ="202";// 'roster.insert.message';
MessageTypes.CLASS_DELETE_ROSTER ="203"// 'roster.delete.message';
MessageTypes.CLASS_NONENTITY_ROSTER ="204";// 'roster.nonentity.message';
MessageTypes.CLASS_EXIT = 'class.exit';//退出 关闭会议
MessageTypes.CLASS_UPTATE_STATUS = 'class.update.status';//更新会议状态信息
MessageTypes.CLASS_STATUS_INFO_CHANGE= 'class.status.info.change';//会议状态信息发生改变,需要保存数据到sass和同步MCU
MessageTypes.CLASS_EXIT ="205";// 'class.exit';//退出 关闭会议
MessageTypes.CLASS_UPTATE_STATUS ="206";// 'class.update.status';//更新会议状态信息
MessageTypes.CLASS_STATUS_INFO_CHANGE="207";// 'class.status.info.change';//会议状态信息发生改变,需要保存数据到sass和同步MCU
MessageTypes.CLASS_UPDATE_TIMER='class.update.timer';//更新当前上课的时间
MessageTypes.CLASS_UPDATE_TIMER="208";//'class.update.timer';//更新当前上课的时间
MessageTypes.CLASS_RECORD_START='class.record.start';//开始录制
MessageTypes.CLASS_RECORD_START="209";//'class.record.start';//开始录制
//聊天模块事件定义
MessageTypes.CHAT_RECEIVE = 'chat.receive';
MessageTypes.CHAT_RECEIVE ="300";// 'chat.receive';
//视频模块事件定义
MessageTypes.VIDEO_PLAY = 'video.play';//播放视频
MessageTypes.VIDEO_STOP = 'video.stop';//停止视频
MessageTypes.VIDEO_UPDATE = 'video.update';
MessageTypes.VIDEO_BROADCAST= 'video.broadcast';
MessageTypes.VIDEO_PLAY ="400";// 'video.play';//播放视频
MessageTypes.VIDEO_STOP ="401"; //'video.stop';//停止视频
MessageTypes.VIDEO_UPDATE ="402";// 'video.update';//废弃,400、401取代
MessageTypes.VIDEO_BROADCAST= "403";//'video.broadcast';
//音频模块事件定义
MessageTypes.AUDIO_PLAY = 'audio.play';//播放
MessageTypes.AUDIO_STOP = 'audio.stop';//停止
MessageTypes.AUDIO_UPDATE = 'audio.update';
MessageTypes.AUDIO_BROADCAST= 'audio.broadcast';
MessageTypes.AUDIO_PLAY ="500";// 'audio.play';//播放
MessageTypes.AUDIO_STOP = "501";//'audio.stop';//停止
MessageTypes.AUDIO_UPDATE = "502";//'audio.update';
MessageTypes.AUDIO_BROADCAST= "503";//'audio.broadcast';
//文档模块事件定义
MessageTypes.DOC_DELETE='document.delete';//删除文档
MessageTypes.DOC_UPDATE = 'document.update';//更新文档(添加、变更)
MessageTypes.DOC_DELETE="600";//'document.delete';//删除文档
MessageTypes.DOC_UPDATE ="601";// 'document.update';//更新文档(添加、变更)
//MessageTypes.DOC_SHOW = 'document.show';
//MessageTypes.DOC_UPLOAD='document.upload';//上传文档
//MessageTypes.DOC_COMMAND='document.command';//操作文档
... ... @@ -59,18 +60,15 @@ MessageTypes.DOC_UPDATE = 'document.update';//更新文档(添加、变更)
//白板笔记事件定义
MessageTypes.WHITEBOARD_ANNOTATION_UPDATE = 'whiteboard.annotation.update';
MessageTypes.WHITEBOARD_ANNOTATION_UPDATE ="700";// 'whiteboard.annotation.update';
//MessageTypes.WHITEBOARD_ANNOTAION_INSERT = 'whiteboard.annotation.insert';
//MessageTypes.WHITEBOARD_ANNOTAION_DELETE = 'whiteboard.annotation.delete';
//MessageTypes.WHITEBOARD_ANNOTATION_CLEAR = 'whiteboard.annotation.clear';
//音频
MessageTypes.AUDIO_RECEIVE='audio.receive';
//错误事件定义
MessageTypes.MCU_ERROR ="mcuError";//MCU错误
MessageTypes.MCU_ERROR ="1000";//"mcuError";//MCU错误(内部使用)
MessageTypes.ERROR="1100";//外部监听错误的消息ID(外部使用)
//---------------错误消息 ErrorCode 定义-------------------------------------------------
... ...
... ... @@ -54,7 +54,7 @@ export default class Ape extends Emiter {
// 监听底层MCU会议
this.mcu = mcu;
this.mcu.on(MessageTypes.CLASS_JOIN_SUCCESS, this._mcuConferenceJoinSuccessHandler.bind(this));
this.mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuConferenceJoinSuccessHandler.bind(this));
this.mcu.registerApe(this);
}
... ...
... ... @@ -98,7 +98,7 @@ class MCU extends Emiter {
case PduConsts.RET_SUCCESS:
//加入成功
this._updateMCUConfInfoDescription(joinConfPdu.classDescription);
this._emit(MessageTypes.CLASS_JOIN_SUCCESS, this.classInfo);
this._emit(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this.classInfo);
break;
case PduConsts.RET_FULL_CAPACITY:
this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_FULL);
... ...