李勇

1.离开课堂增加异步事件回调,之前版本自己离开的时候不会发送class_exit消息

此 diff 太大无法显示。
... ... @@ -27,7 +27,7 @@ import Server from "config/Server";
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.9.18.20170425", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.9.19.20170425", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -90,7 +90,7 @@ export default class MessageEntrance extends Emiter {
// 注册所有应用Ape
_confer_ape = new ConferApe();
_confer_ape.on('*', (type, data) => this._emit(type, data));
_confer_ape.on(MessageTypes.CLASS_EXIT, this._doClassExit.bind(this));//监听自己的关闭事件
_confer_ape.on(MessageTypes.CLASS_RUN_EXIT, this._runClassExit.bind(this));//监听自己的关闭事件
_confer_ape.on(MessageTypes.CLASS_STATUS_INFO_CHANGE, this._onClassStatusInfoChange.bind(this));//当前课堂状态信息发生改变
_confer_ape.on(MessageTypes.CLASS_DELETE_ROSTER, this._onClassDeleteRoster.bind(this));//当前课堂人员离开
_confer_ape.on(MessageTypes.CLASS_NONENTITY_ROSTER, this._onClassNonentityRoster.bind(this));//当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在
... ... @@ -221,14 +221,15 @@ export default class MessageEntrance extends Emiter {
return GlobalConfig.classStatusInfo;
}
/*
//关闭课堂,所有人都退出
_doClassClose(_param) {
this._leaveClass();
}
}*/
//离开课堂,断开连接
_doClassExit() {
this._leaveClass();
//执行离开课堂断开连接的流程
_runClassExit(_type) {
this._leaveClass(_type);
}
//当前的课堂状态信息发生改变,需要保存课堂状态到Sass
... ... @@ -916,8 +917,8 @@ export default class MessageEntrance extends Emiter {
}
}
// 离开课堂
_leaveClass() {
// 离开课堂 {type:1} type=1被踢出课堂;type=0自己主动离开
_leaveClass(_param) {
if (!_mcu.connected) {
loger.warn(GlobalConfig.getCurrentStatus());
return;
... ... @@ -935,6 +936,16 @@ export default class MessageEntrance extends Emiter {
_confer_ape.stopRecord();
_confer_ape.leaveClass();
}
let callBack={};
if(_param&&_param.type){
callBack=_param;
}else{
callBack.type=0;
}
loger.warn('离开课堂->',MessageTypes.CLASS_EXIT,callBack);
this._emit(MessageTypes.CLASS_EXIT,callBack);
//断开MCU连接
if (_mcu) {
_mcu.leaveMCU();
... ...
... ... @@ -21,7 +21,8 @@ MessageTypes.CLASS_INSERT_ROSTER ="class_insert_roster";// 'roster.insert.messag
MessageTypes.CLASS_DELETE_ROSTER ="class_delete_roster"// 'roster.delete.message';
MessageTypes.CLASS_NONENTITY_ROSTER ="class_nonenetity_roster";// 'roster.nonentity.message';
MessageTypes.CLASS_EXIT ="class_exit";// 'class.exit';//退出 关闭课堂
MessageTypes.CLASS_RUN_EXIT ="class_run_exit";//执行课堂退出关闭的流程(sdk内部的)
MessageTypes.CLASS_EXIT ="class_exit";//;//退出关闭课堂(对外)
MessageTypes.CLASS_UPTATE_STATUS ="class_update_status";// 'class.update.status';//更新课堂状态信息
MessageTypes.CLASS_STATUS_INFO_CHANGE="class_status_info_change";// 'class.status.info.change';//课堂状态信息发生改变,需要保存数据到sass和同步MCU
... ...
... ... @@ -492,8 +492,7 @@ class ConferApe extends Ape {
case ApeConsts.CLASS_ACTION_CLOSE_ALL:
loger.log(chatMsg.message);
//收到课堂关闭,所有人都退出,执行自己关闭的流程
//this._emit(MessageTypes.CLASS_EXIT);
this._emit(MessageTypes.CLASS_EXIT,{'type':1});
this._emit(MessageTypes.CLASS_RUN_EXIT,{'type':1});
break;
default:
break;
... ... @@ -564,7 +563,7 @@ class ConferApe extends Ape {
}else if(nodeData.userId==GlobalConfig.userId&&GlobalConfig.userId!="0"){
loger.log("异地登陆->userId->",GlobalConfig.userId);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_REMOTE_LANDING);
this._emit(MessageTypes.CLASS_EXIT,{'type':1});
this._emit(MessageTypes.CLASS_RUN_EXIT,{'type':1});
}
}
//处理用户信息
... ... @@ -601,7 +600,7 @@ class ConferApe extends Ape {
//踢出用户
kickOutRoster() {
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_KICK_OUT);
this._emit(MessageTypes.CLASS_EXIT,{'type':1});
this._emit(MessageTypes.CLASS_RUN_EXIT,{'type':1});
}
//视频模块发生更新,人员状态需要更新
... ... @@ -619,7 +618,7 @@ class ConferApe extends Ape {
if (GlobalConfig.nodeId == nodeId) {
loger.log("自己离开课堂");
// 自己退出
this._emit(MessageTypes.CLASS_EXIT,{'type':0});
this._emit(MessageTypes.CLASS_RUN_EXIT,{'type':0});
} else {
let user=this.rosters[nodeId];
if(user){
... ...