1.会议模块增加消息广播,控制当前会议中的用户状态
2.获取加入会议信息的Sass接口joinParams.do返回的passwordRequired(只判断了学生的),老师的按true处理,但是在MD5验证的时候,这个passwordRequired必须用joinParams.do返回时的值
正在显示
7 个修改的文件
包含
370 行增加
和
215 行删除
| @@ -47,13 +47,13 @@ export default class MessageEntrance extends Emiter { | @@ -47,13 +47,13 @@ export default class MessageEntrance extends Emiter { | ||
| 47 | constructor() { | 47 | constructor() { |
| 48 | super(); | 48 | super(); |
| 49 | //sdk 信息 | 49 | //sdk 信息 |
| 50 | - this.sdkInfo=_sdkInfo; | 50 | + this.sdkInfo = _sdkInfo; |
| 51 | loger.log(this.sdkInfo); | 51 | loger.log(this.sdkInfo); |
| 52 | 52 | ||
| 53 | //初始化状态 | 53 | //初始化状态 |
| 54 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_0); | 54 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_0); |
| 55 | 55 | ||
| 56 | - this.on(MessageTypes.MCU_ERROR,this._mcuErrorHandler.bind(this)); | 56 | + this.on(MessageTypes.MCU_ERROR, this._mcuErrorHandler.bind(this)); |
| 57 | 57 | ||
| 58 | //this.on(MessageTypes.DOC_SHOW, this.docShowHandler.bind(this)); | 58 | //this.on(MessageTypes.DOC_SHOW, this.docShowHandler.bind(this)); |
| 59 | 59 | ||
| @@ -63,9 +63,9 @@ export default class MessageEntrance extends Emiter { | @@ -63,9 +63,9 @@ export default class MessageEntrance extends Emiter { | ||
| 63 | _sass.on(_sass.SUCCESS, this._sassJoinSuccessHandler.bind(this));//通过SASS平台验证(密码和MD5) | 63 | _sass.on(_sass.SUCCESS, this._sassJoinSuccessHandler.bind(this));//通过SASS平台验证(密码和MD5) |
| 64 | _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this));//获取会议初始化信息 | 64 | _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this));//获取会议初始化信息 |
| 65 | _sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._sassGetClassDetailSuccessHandler.bind(this));//获取会议的基本信息 | 65 | _sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._sassGetClassDetailSuccessHandler.bind(this));//获取会议的基本信息 |
| 66 | - _sass.on(_sass.CLASS_GET_CLASS_PARAM,this._sassGetClassParamSuccessHandler.bind(this));//获取会议的最全信息和历史保存的数据 | ||
| 67 | - _sass.on(_sass.CLASS_SAVE_STATUS_INFO_SUCCESS,this._sassSaveClassStatusInfoSuccessHandler.bind(this));//保存会议状态信息 | ||
| 68 | - _sass.on(_sass.DELETE_DOCUMENT_SUCCESS,this._sassDeleteDocumentSuccess.bind(this));//sass删除文档成功 | 66 | + _sass.on(_sass.CLASS_GET_CLASS_PARAM, this._sassGetClassParamSuccessHandler.bind(this));//获取会议的最全信息和历史保存的数据 |
| 67 | + _sass.on(_sass.CLASS_SAVE_STATUS_INFO_SUCCESS, this._sassSaveClassStatusInfoSuccessHandler.bind(this));//保存会议状态信息 | ||
| 68 | + _sass.on(_sass.DELETE_DOCUMENT_SUCCESS, this._sassDeleteDocumentSuccess.bind(this));//sass删除文档成功 | ||
| 69 | 69 | ||
| 70 | // 底层MCU消息层 | 70 | // 底层MCU消息层 |
| 71 | _mcu = Mcu; | 71 | _mcu = Mcu; |
| @@ -77,6 +77,7 @@ export default class MessageEntrance extends Emiter { | @@ -77,6 +77,7 @@ export default class MessageEntrance extends Emiter { | ||
| 77 | _confer_ape = new ConferApe(); | 77 | _confer_ape = new ConferApe(); |
| 78 | _confer_ape.on('*', (type, data) => this._emit(type, data)); | 78 | _confer_ape.on('*', (type, data) => this._emit(type, data)); |
| 79 | _confer_ape.on(MessageTypes.CLASS_CLOSE, this._doClassClose.bind(this));//会议关闭,所有人都退出 | 79 | _confer_ape.on(MessageTypes.CLASS_CLOSE, this._doClassClose.bind(this));//会议关闭,所有人都退出 |
| 80 | + _confer_ape.on(MessageTypes.CLASS_EXIT, this._doClassExit.bind(this));//监听自己的关闭事件 | ||
| 80 | _confer_ape.on(MessageTypes.CLASS_STATUS_INFO_CHANGE, this._onClassStatusInfoChange.bind(this));//当前会议状态信息发生改变 | 81 | _confer_ape.on(MessageTypes.CLASS_STATUS_INFO_CHANGE, this._onClassStatusInfoChange.bind(this));//当前会议状态信息发生改变 |
| 81 | 82 | ||
| 82 | _chat_ape = new ChatApe(); | 83 | _chat_ape = new ChatApe(); |
| @@ -89,7 +90,7 @@ export default class MessageEntrance extends Emiter { | @@ -89,7 +90,7 @@ export default class MessageEntrance extends Emiter { | ||
| 89 | _doc_ape.on('*', (type, data) => this._emit(type, data)); | 90 | _doc_ape.on('*', (type, data) => this._emit(type, data)); |
| 90 | _doc_ape.on(MessageTypes.DOC_UPDATE, this.docUpdateHandler.bind(this)); | 91 | _doc_ape.on(MessageTypes.DOC_UPDATE, this.docUpdateHandler.bind(this)); |
| 91 | _doc_ape.on(MessageTypes.DOC_DELETE, this.docDeleteHandler.bind(this)); | 92 | _doc_ape.on(MessageTypes.DOC_DELETE, this.docDeleteHandler.bind(this)); |
| 92 | - _doc_ape.on( DocApe.DOC_JOIN_CHANNEL_SUCCESS,this.docJoinChannelSuccess.bind(this)); | 93 | + _doc_ape.on(DocApe.DOC_JOIN_CHANNEL_SUCCESS, this.docJoinChannelSuccess.bind(this)); |
| 93 | 94 | ||
| 94 | 95 | ||
| 95 | _whiteboard_ape = new WhiteBoardApe(); | 96 | _whiteboard_ape = new WhiteBoardApe(); |
| @@ -99,122 +100,129 @@ export default class MessageEntrance extends Emiter { | @@ -99,122 +100,129 @@ export default class MessageEntrance extends Emiter { | ||
| 99 | 100 | ||
| 100 | //公开外部调用的方法 | 101 | //公开外部调用的方法 |
| 101 | //class | 102 | //class |
| 102 | - this.init=this._init; | ||
| 103 | - this.joinClass=this._joinClass; | ||
| 104 | - this.leaveClass=this._leaveClass; | ||
| 105 | - this.getMcuClientStatus=this._getMcuClientStatus; | ||
| 106 | - this.getClassDetail=this._getClassDetail; | ||
| 107 | - this.sendStartClass=this._sendStartClass; | ||
| 108 | - this.sendPauseClass=this._sendPauseClass; | ||
| 109 | - this.sendCloseClass=this._sendCloseClass; | 103 | + this.init = this._init; |
| 104 | + this.joinClass = this._joinClass; | ||
| 105 | + this.leaveClass = this._leaveClass; | ||
| 106 | + this.getMcuClientStatus = this._getMcuClientStatus; | ||
| 107 | + this.getClassDetail = this._getClassDetail; | ||
| 108 | + this.sendStartClass = this._sendStartClass; | ||
| 109 | + this.sendPauseClass = this._sendPauseClass; | ||
| 110 | + this.sendCloseClass = this._sendCloseClass; | ||
| 110 | 111 | ||
| 111 | //chatApe | 112 | //chatApe |
| 112 | - this.sendChatMsg=this._sendChatMsg; | 113 | + this.sendChatMsg = this._sendChatMsg; |
| 113 | 114 | ||
| 114 | //videoApe | 115 | //videoApe |
| 115 | - this.getPlayVideoPath=this._getPlayVideoPath; | ||
| 116 | - this.getPublishVideoPath=this._getPublishVideoPath; | ||
| 117 | - this.publishVideo=this._publishVideo; | ||
| 118 | - this.stopPublishVideo=this._stopPublishVideo; | 116 | + this.getPlayVideoPath = this._getPlayVideoPath; |
| 117 | + this.getPublishVideoPath = this._getPublishVideoPath; | ||
| 118 | + this.publishVideo = this._publishVideo; | ||
| 119 | + this.stopPublishVideo = this._stopPublishVideo; | ||
| 119 | 120 | ||
| 120 | //whiteBoradApe | 121 | //whiteBoradApe |
| 121 | - this.sendInsertAnnotaion=this._sendInsertAnnotaion; | 122 | + this.sendInsertAnnotaion = this._sendInsertAnnotaion; |
| 122 | //this.sendDeleteAnnotaion=this._sendDeleteAnnotaion; | 123 | //this.sendDeleteAnnotaion=this._sendDeleteAnnotaion; |
| 123 | - this.sendDeleteAllAnnotation=this._sendDeleteAllAnnotation; | ||
| 124 | - this.sendDeleteCurPageAnnotation=this._sendDeleteCurPageAnnotation; | ||
| 125 | - this.sendGotoPrev=this._sendGotoPrev; | 124 | + this.sendDeleteAllAnnotation = this._sendDeleteAllAnnotation; |
| 125 | + this.sendDeleteCurPageAnnotation = this._sendDeleteCurPageAnnotation; | ||
| 126 | + this.sendGotoPrev = this._sendGotoPrev; | ||
| 126 | 127 | ||
| 127 | //DocApe | 128 | //DocApe |
| 128 | - this.sendDocumentUpload= this._sendDocumentUpload;//上传文档 | ||
| 129 | - this.sendDocumentSwitchDoc= this._sendDocumentSwitchDoc; //切换文档 | ||
| 130 | - this.sendDocumentSwitchPage= this._sendDocumentSwitchPage;//翻页 | ||
| 131 | - this.sendDocumentDelete= this. _sassDeleteDocument;//删除文档,先通过Sass删除,sass删除成功之后再同步mcu | 129 | + this.sendDocumentUpload = this._sendDocumentUpload;//上传文档 |
| 130 | + this.sendDocumentSwitchDoc = this._sendDocumentSwitchDoc; //切换文档 | ||
| 131 | + this.sendDocumentSwitchPage = this._sendDocumentSwitchPage;//翻页 | ||
| 132 | + this.sendDocumentDelete = this._sassDeleteDocument;//删除文档,先通过Sass删除,sass删除成功之后再同步mcu | ||
| 132 | //this.sendDocumentDeleteAll= this._documentDeleteAll;//删除所有文档 | 133 | //this.sendDocumentDeleteAll= this._documentDeleteAll;//删除所有文档 |
| 133 | - this.sendDocumentCommand= this._sendDocumentCommand;//操作文档(翻页、缩放、滚动...) | 134 | + this.sendDocumentCommand = this._sendDocumentCommand;//操作文档(翻页、缩放、滚动...) |
| 134 | 135 | ||
| 135 | } | 136 | } |
| 136 | 137 | ||
| 137 | 138 | ||
| 138 | //mcu异常监听 | 139 | //mcu异常监听 |
| 139 | - _mcuErrorHandler(_data,_option){ | ||
| 140 | - if(_mcuErrorCallBackFun){ | ||
| 141 | - let option=_option||""; | ||
| 142 | - let errorMessage={"code":_data,"reson":MessageTypes.ErrorReson[_data]+" "+option}; | ||
| 143 | - loger.error("MCU_ERROR",errorMessage); | 140 | + _mcuErrorHandler(_data, _option) { |
| 141 | + if (_mcuErrorCallBackFun) { | ||
| 142 | + let option = _option || ""; | ||
| 143 | + let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option}; | ||
| 144 | + loger.error("MCU_ERROR", errorMessage); | ||
| 144 | _mcuErrorCallBackFun(errorMessage); | 145 | _mcuErrorCallBackFun(errorMessage); |
| 145 | } | 146 | } |
| 146 | } | 147 | } |
| 147 | 148 | ||
| 148 | //获取当前的状态 | 149 | //获取当前的状态 |
| 149 | - _getMcuClientStatus(){ | 150 | + _getMcuClientStatus() { |
| 150 | return GlobalConfig.getCurrentStatus(); | 151 | return GlobalConfig.getCurrentStatus(); |
| 151 | } | 152 | } |
| 153 | + | ||
| 152 | //获取会议信息 | 154 | //获取会议信息 |
| 153 | - _getClassDetail(){ | 155 | + _getClassDetail() { |
| 154 | return GlobalConfig.getClassDetail(); | 156 | return GlobalConfig.getClassDetail(); |
| 155 | } | 157 | } |
| 156 | 158 | ||
| 157 | //关闭会议,所有人都退出 | 159 | //关闭会议,所有人都退出 |
| 158 | - _doClassClose(_param){ | 160 | + _doClassClose(_param) { |
| 161 | + this._leaveClass(); | ||
| 162 | + } | ||
| 163 | + | ||
| 164 | + //离开会议,断开连接 | ||
| 165 | + _doClassExit() { | ||
| 159 | this._leaveClass(); | 166 | this._leaveClass(); |
| 160 | } | 167 | } |
| 168 | + | ||
| 161 | //当前的会议状态信息发生改变,需要保存会议状态到Sass | 169 | //当前的会议状态信息发生改变,需要保存会议状态到Sass |
| 162 | - _onClassStatusInfoChange(_param){ | 170 | + _onClassStatusInfoChange(_param) { |
| 163 | this._sassSaveClassStatusInfo(); | 171 | this._sassSaveClassStatusInfo(); |
| 164 | } | 172 | } |
| 165 | 173 | ||
| 166 | //Sass | 174 | //Sass |
| 167 | //初始化 | 175 | //初始化 |
| 168 | - _init(_param,_onSuccess,_mcuErrorCallBack){ | ||
| 169 | - _initSuccessCallBackFun=_onSuccess; | ||
| 170 | - _mcuErrorCallBackFun=_mcuErrorCallBack; | 176 | + _init(_param, _onSuccess, _mcuErrorCallBack) { |
| 177 | + _initSuccessCallBackFun = _onSuccess; | ||
| 178 | + _mcuErrorCallBackFun = _mcuErrorCallBack; | ||
| 171 | //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0} | 179 | //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0} |
| 172 | //判断传入的参数是否存在 | 180 | //判断传入的参数是否存在 |
| 173 | - if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null||_mcuErrorCallBack==null){ | 181 | + if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null || _mcuErrorCallBack == null) { |
| 174 | loger.error('init初始化失败,参数错误'); | 182 | loger.error('init初始化失败,参数错误'); |
| 175 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PARAM); | ||
| 176 | - return ; | 183 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM); |
| 184 | + return; | ||
| 177 | } | 185 | } |
| 178 | //判断必要的参数字段值 | 186 | //判断必要的参数字段值 |
| 179 | - if(_param.classId==null||isNaN(_param.classId)||_param.portal==null||_param.portal==""){ | ||
| 180 | - loger.error('init初始化失败',_param); | ||
| 181 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PARAM); | ||
| 182 | - return ; | 187 | + if (_param.classId == null || isNaN(_param.classId) || _param.portal == null || _param.portal == "") { |
| 188 | + loger.error('init初始化失败', _param); | ||
| 189 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_INIT_PARAM); | ||
| 190 | + return; | ||
| 183 | } | 191 | } |
| 184 | - loger.log('init',_param); | 192 | + loger.log('init', _param); |
| 185 | //保存参数 | 193 | //保存参数 |
| 186 | - GlobalConfig.classId=_param.classId; | ||
| 187 | - GlobalConfig.portal=_param.portal; | ||
| 188 | - GlobalConfig.userRole=_param.userRole||ApeConsts.normal; | ||
| 189 | - GlobalConfig.userId=_param.userId||"0"; | 194 | + GlobalConfig.classId = parseInt(_param.classId); |
| 195 | + GlobalConfig.portal = _param.portal; | ||
| 196 | + GlobalConfig.userRole = _param.userRole || ApeConsts.normal; | ||
| 197 | + GlobalConfig.userId = _param.userId || "0"; | ||
| 190 | 198 | ||
| 191 | //获取课堂校验信息 | 199 | //获取课堂校验信息 |
| 192 | - if(_sass){ | 200 | + if (_sass) { |
| 193 | _sass.getJoinParams(GlobalConfig.getClassInfo()); | 201 | _sass.getJoinParams(GlobalConfig.getClassInfo()); |
| 194 | } | 202 | } |
| 195 | } | 203 | } |
| 196 | 204 | ||
| 197 | //外部请求加入会议 | 205 | //外部请求加入会议 |
| 198 | - _joinClass(_param,_onSuccess){ | ||
| 199 | - _joinClassSuccessCallBackFun=_onSuccess; | 206 | + _joinClass(_param, _onSuccess) { |
| 207 | + _joinClassSuccessCallBackFun = _onSuccess; | ||
| 200 | //{"userName":"名字","password":""} | 208 | //{"userName":"名字","password":""} |
| 201 | - if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null){ | ||
| 202 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_PARAM); | ||
| 203 | - loger.log('不能进入会议,传递的参数不对.',_param); | ||
| 204 | - return ; | 209 | + if (_param == null || EngineUtils.isEmptyObject(_param) || _onSuccess == null) { |
| 210 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_JOIN_PARAM); | ||
| 211 | + loger.log('不能进入会议,传递的参数不对.', _param); | ||
| 212 | + return; | ||
| 205 | } | 213 | } |
| 206 | //判断userName | 214 | //判断userName |
| 207 | - if(_param.userName==null||_param.userName==""){ | 215 | + if (_param.userName == null || _param.userName == "") { |
| 208 | loger.log('不能进入会议,传递的参数不对.名字不能为空'); | 216 | loger.log('不能进入会议,传递的参数不对.名字不能为空'); |
| 209 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_PARAM); | ||
| 210 | - return ; | 217 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_CLASS_JOIN_PARAM); |
| 218 | + return; | ||
| 211 | } | 219 | } |
| 212 | 220 | ||
| 213 | - GlobalConfig.userName=_param.userName; | ||
| 214 | - GlobalConfig.password=_param.password||""; | 221 | + GlobalConfig.userName = _param.userName; |
| 222 | + GlobalConfig.password = _param.password || ""; | ||
| 215 | 223 | ||
| 216 | //开始校验 | 224 | //开始校验 |
| 217 | - if(_sass){ | 225 | + if (_sass) { |
| 218 | _sass.passwordAndMd5Checking(GlobalConfig.getClassInfo()); | 226 | _sass.passwordAndMd5Checking(GlobalConfig.getClassInfo()); |
| 219 | } | 227 | } |
| 220 | } | 228 | } |
| @@ -223,31 +231,40 @@ export default class MessageEntrance extends Emiter { | @@ -223,31 +231,40 @@ export default class MessageEntrance extends Emiter { | ||
| 223 | _sassInitSuccessHandler(_data) { | 231 | _sassInitSuccessHandler(_data) { |
| 224 | //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1} | 232 | //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1} |
| 225 | //储存数据 | 233 | //储存数据 |
| 226 | - GlobalConfig.md5=_data.md5||"";//这个暂时用假数据,后台接口写完就有数据了 | ||
| 227 | - GlobalConfig.msType=_data.msType||1; | ||
| 228 | - GlobalConfig.siteId=_data.siteId||""; | ||
| 229 | - GlobalConfig.classType=_data.meetingType||0; | ||
| 230 | - | ||
| 231 | - //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的 | ||
| 232 | - if(GlobalConfig.userRole=="host"){ | ||
| 233 | - GlobalConfig.passwordRequired=true; | ||
| 234 | - }else { | ||
| 235 | - GlobalConfig.passwordRequired=_data.passwordRequired||false; | 234 | + GlobalConfig.md5 = _data.md5 || "";//这个暂时用假数据,后台接口写完就有数据了 |
| 235 | + GlobalConfig.msType = _data.msType || 1; | ||
| 236 | + GlobalConfig.siteId = _data.siteId || ""; | ||
| 237 | + GlobalConfig.classType = _data.meetingType || 0; | ||
| 238 | + | ||
| 239 | + /*//host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的 | ||
| 240 | + if (GlobalConfig.userRole == "host") { | ||
| 241 | + GlobalConfig.passwordRequired = true; | ||
| 242 | + } else { | ||
| 243 | + GlobalConfig.passwordRequired = _data.passwordRequired || false; | ||
| 236 | } | 244 | } |
| 245 | + */ | ||
| 246 | + GlobalConfig.passwordRequired = _data.passwordRequired || false;//md5验证的时候需要Sass返回的值,不能更改 | ||
| 247 | + | ||
| 237 | loger.log('SASS平台获取入会验证信息成功.'); | 248 | loger.log('SASS平台获取入会验证信息成功.'); |
| 238 | 249 | ||
| 239 | //设置当前的会议状态 | 250 | //设置当前的会议状态 |
| 240 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1); | 251 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1); |
| 241 | 252 | ||
| 242 | - if(_initSuccessCallBackFun){ | 253 | + if (_initSuccessCallBackFun) { |
| 243 | //返回给客户端初始化成功的数据 | 254 | //返回给客户端初始化成功的数据 |
| 244 | - let initSuccessCallBackData={}; | ||
| 245 | - initSuccessCallBackData.siteId=GlobalConfig.siteId; | ||
| 246 | - initSuccessCallBackData.classId=GlobalConfig.classId; | ||
| 247 | - initSuccessCallBackData.userRole=GlobalConfig.userRole; | ||
| 248 | - initSuccessCallBackData.userId=GlobalConfig.userId; | ||
| 249 | - initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired; | ||
| 250 | - initSuccessCallBackData.classType=GlobalConfig.classType; | 255 | + let initSuccessCallBackData = {}; |
| 256 | + initSuccessCallBackData.siteId = GlobalConfig.siteId; | ||
| 257 | + initSuccessCallBackData.classId = GlobalConfig.classId; | ||
| 258 | + initSuccessCallBackData.userRole = GlobalConfig.userRole; | ||
| 259 | + initSuccessCallBackData.userId = GlobalConfig.userId; | ||
| 260 | + initSuccessCallBackData.classType = GlobalConfig.classType; | ||
| 261 | + | ||
| 262 | + //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的 | ||
| 263 | + if (GlobalConfig.userRole == ApeConsts.host) { | ||
| 264 | + initSuccessCallBackData.passwordRequired =true; | ||
| 265 | + } else { | ||
| 266 | + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; | ||
| 267 | + } | ||
| 251 | 268 | ||
| 252 | _initSuccessCallBackFun(initSuccessCallBackData); | 269 | _initSuccessCallBackFun(initSuccessCallBackData); |
| 253 | } | 270 | } |
| @@ -256,30 +273,30 @@ export default class MessageEntrance extends Emiter { | @@ -256,30 +273,30 @@ export default class MessageEntrance extends Emiter { | ||
| 256 | // 通过SASS平台验证 | 273 | // 通过SASS平台验证 |
| 257 | _sassJoinSuccessHandler(_data) { | 274 | _sassJoinSuccessHandler(_data) { |
| 258 | //返回值 | 275 | //返回值 |
| 259 | - /* flag 数值型 无 True:成功 | ||
| 260 | - Flag:失败 | ||
| 261 | - h5_mcu_list 字符串 H5muc列表 | ||
| 262 | - maxVideoChannels 数值型 最大视频路数 | ||
| 263 | - maxAudioChannels 数值型 最大音频路数 | ||
| 264 | - h5Module 数值型 H5开关 | ||
| 265 | - ms 字符串 Ms列表 | ||
| 266 | - mcu 字符串 Mcu列表 | ||
| 267 | - rs 字符串 Rs列表 | ||
| 268 | - doc 字符串 Doc列表*/ | ||
| 269 | - | ||
| 270 | -/* { | ||
| 271 | - "record": "112.126.80.182:80", | ||
| 272 | - "flag": "true", | ||
| 273 | - "h5Module": 1, | ||
| 274 | - "maxVideoChannels": 1, | ||
| 275 | - "mcu": "123.56.73.119:7000;123.56.69.230:7000;112.126.80.182:7000", | ||
| 276 | - "ms": "pubms.3mang.com:1935", | ||
| 277 | - "doc": "101.200.150.192:80", | ||
| 278 | - "rs": "pubms.3mang.com:1935", | ||
| 279 | - "type": 1, | ||
| 280 | - "maxAudioChannels": 1, | ||
| 281 | - "h5_mcu_list": "123.56.73.119:7001;123.56.69.230:7001;112.126.80.182:7001" | ||
| 282 | - }*/ | 276 | + /* flag 数值型 无 True:成功 |
| 277 | + Flag:失败 | ||
| 278 | + h5_mcu_list 字符串 H5muc列表 | ||
| 279 | + maxVideoChannels 数值型 最大视频路数 | ||
| 280 | + maxAudioChannels 数值型 最大音频路数 | ||
| 281 | + h5Module 数值型 H5开关 | ||
| 282 | + ms 字符串 Ms列表 | ||
| 283 | + mcu 字符串 Mcu列表 | ||
| 284 | + rs 字符串 Rs列表 | ||
| 285 | + doc 字符串 Doc列表*/ | ||
| 286 | + | ||
| 287 | + /* { | ||
| 288 | + "record": "112.126.80.182:80", | ||
| 289 | + "flag": "true", | ||
| 290 | + "h5Module": 1, | ||
| 291 | + "maxVideoChannels": 1, | ||
| 292 | + "mcu": "123.56.73.119:7000;123.56.69.230:7000;112.126.80.182:7000", | ||
| 293 | + "ms": "pubms.3mang.com:1935", | ||
| 294 | + "doc": "101.200.150.192:80", | ||
| 295 | + "rs": "pubms.3mang.com:1935", | ||
| 296 | + "type": 1, | ||
| 297 | + "maxAudioChannels": 1, | ||
| 298 | + "h5_mcu_list": "123.56.73.119:7001;123.56.69.230:7001;112.126.80.182:7001" | ||
| 299 | + }*/ | ||
| 283 | if (_data.h5_mcu_list) { | 300 | if (_data.h5_mcu_list) { |
| 284 | //MCU地址默认使用第一个 | 301 | //MCU地址默认使用第一个 |
| 285 | let server = _data.h5_mcu_list.split(";")[0]; | 302 | let server = _data.h5_mcu_list.split(";")[0]; |
| @@ -287,24 +304,24 @@ export default class MessageEntrance extends Emiter { | @@ -287,24 +304,24 @@ export default class MessageEntrance extends Emiter { | ||
| 287 | GlobalConfig.MCUServerPort = server.split(":")[1]; | 304 | GlobalConfig.MCUServerPort = server.split(":")[1]; |
| 288 | } | 305 | } |
| 289 | 306 | ||
| 290 | - GlobalConfig.doc=_data.doc; | ||
| 291 | - GlobalConfig.h5_mcu_list=_data.h5_mcu_list; | ||
| 292 | - GlobalConfig.h5Module=_data.h5Module; | ||
| 293 | - GlobalConfig.mcu=_data.mcu; | ||
| 294 | - GlobalConfig.ms=_data.ms; | ||
| 295 | - GlobalConfig.record=_data.record; | ||
| 296 | - GlobalConfig.rs=_data.rs; | ||
| 297 | - GlobalConfig.maxVideoChannels=_data.maxVideoChannels; | ||
| 298 | - GlobalConfig.maxAudioChannels=_data.maxAudioChannels; | ||
| 299 | - GlobalConfig.maxMediaChannels= _data.maxVideoChannels + _data.maxAudioChannels; | 307 | + GlobalConfig.doc = _data.doc; |
| 308 | + GlobalConfig.h5_mcu_list = _data.h5_mcu_list; | ||
| 309 | + GlobalConfig.h5Module = _data.h5Module; | ||
| 310 | + GlobalConfig.mcu = _data.mcu; | ||
| 311 | + GlobalConfig.ms = _data.ms; | ||
| 312 | + GlobalConfig.record = _data.record; | ||
| 313 | + GlobalConfig.rs = _data.rs; | ||
| 314 | + GlobalConfig.maxVideoChannels = _data.maxVideoChannels; | ||
| 315 | + GlobalConfig.maxAudioChannels = _data.maxAudioChannels; | ||
| 316 | + GlobalConfig.maxMediaChannels = _data.maxVideoChannels + _data.maxAudioChannels; | ||
| 300 | 317 | ||
| 301 | - if(_sass){ | 318 | + if (_sass) { |
| 302 | _sass.getClassDetail();//会议基本信息 | 319 | _sass.getClassDetail();//会议基本信息 |
| 303 | } | 320 | } |
| 304 | } | 321 | } |
| 305 | 322 | ||
| 306 | //获取会议所有参数 getClassH5 | 323 | //获取会议所有参数 getClassH5 |
| 307 | - _sassGetClassDetailSuccessHandler(_data){ | 324 | + _sassGetClassDetailSuccessHandler(_data) { |
| 308 | loger.log('获取getClassDetail完成.'); | 325 | loger.log('获取getClassDetail完成.'); |
| 309 | /* { | 326 | /* { |
| 310 | "cycle": 0, | 327 | "cycle": 0, |
| @@ -327,24 +344,24 @@ export default class MessageEntrance extends Emiter { | @@ -327,24 +344,24 @@ export default class MessageEntrance extends Emiter { | ||
| 327 | "repeatmonthweekday": 0, | 344 | "repeatmonthweekday": 0, |
| 328 | "endcount": 1 | 345 | "endcount": 1 |
| 329 | }*/ | 346 | }*/ |
| 330 | - GlobalConfig.classDetail=_data; | ||
| 331 | - GlobalConfig.className=_data.meetingName||""; | ||
| 332 | - GlobalConfig.classBeginTime=_data.beginTime||""; | ||
| 333 | - GlobalConfig.classEndTime=_data.endTime||""; | 347 | + GlobalConfig.classDetail = _data; |
| 348 | + GlobalConfig.className = _data.meetingName || ""; | ||
| 349 | + GlobalConfig.classBeginTime = _data.beginTime || ""; | ||
| 350 | + GlobalConfig.classEndTime = _data.endTime || ""; | ||
| 334 | 351 | ||
| 335 | //获取会议所有信息和以前保存的会议状态信息 | 352 | //获取会议所有信息和以前保存的会议状态信息 |
| 336 | - if(_sass){ | 353 | + if (_sass) { |
| 337 | _sass.getClassParam(); | 354 | _sass.getClassParam(); |
| 338 | } | 355 | } |
| 339 | } | 356 | } |
| 340 | 357 | ||
| 341 | //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getClassParam.do | 358 | //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getClassParam.do |
| 342 | - _sassGetClassParamSuccessHandler(_data){ | 359 | + _sassGetClassParamSuccessHandler(_data) { |
| 343 | //console.log(GlobalConfig.classStatusInfo) | 360 | //console.log(GlobalConfig.classStatusInfo) |
| 344 | loger.log('获取api/meeting/detail.do完成.'); | 361 | loger.log('获取api/meeting/detail.do完成.'); |
| 345 | - // console.log(_data); | 362 | + // console.log(_data); |
| 346 | //包含整个会议最全的信息,储存数据 | 363 | //包含整个会议最全的信息,储存数据 |
| 347 | - if(_data){ | 364 | + if (_data) { |
| 348 | GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表 | 365 | GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表 |
| 349 | GlobalConfig.setDocRecordList(_data.docRecordList);// | 366 | GlobalConfig.setDocRecordList(_data.docRecordList);// |
| 350 | GlobalConfig.setDocList(_data.docList);// | 367 | GlobalConfig.setDocList(_data.docList);// |
| @@ -355,24 +372,24 @@ export default class MessageEntrance extends Emiter { | @@ -355,24 +372,24 @@ export default class MessageEntrance extends Emiter { | ||
| 355 | GlobalConfig.setRsList(_data.rsList);// | 372 | GlobalConfig.setRsList(_data.rsList);// |
| 356 | 373 | ||
| 357 | } | 374 | } |
| 358 | - if(_data.currentInfo){ | ||
| 359 | - //根据从Sass获取的数据信息,同步最后一次保存的会议状态信息 | 375 | + if (_data.currentInfo) { |
| 376 | + //根据从Sass获取的数据信息,同步最后一次保存的会议状态信息 | ||
| 360 | loger.log("同步最后一次保存过的会议状态信息"); | 377 | loger.log("同步最后一次保存过的会议状态信息"); |
| 361 | 378 | ||
| 362 | /*//解析BASE64的数据 | 379 | /*//解析BASE64的数据 |
| 363 | - loger.log("11111111111111111111111111111111"); | ||
| 364 | - console.log(GlobalConfig.classStatusInfo); | ||
| 365 | - //已经保存过会议状态信息,读取之前的数据 | ||
| 366 | - let _classStatusInfo=EngineUtils.objectFromBase64(_data.currentInfo); | ||
| 367 | - loger.log("classStatusInfo",_classStatusInfo); | ||
| 368 | - GlobalConfig.classStatusInfo=_classStatusInfo; | ||
| 369 | - loger.log("2222222222222222222222222"); | ||
| 370 | - console.log(GlobalConfig.classStatusInfo);*/ | 380 | + loger.log("11111111111111111111111111111111"); |
| 381 | + console.log(GlobalConfig.classStatusInfo); | ||
| 382 | + //已经保存过会议状态信息,读取之前的数据 | ||
| 383 | + let _classStatusInfo=EngineUtils.objectFromBase64(_data.currentInfo); | ||
| 384 | + loger.log("classStatusInfo",_classStatusInfo); | ||
| 385 | + GlobalConfig.classStatusInfo=_classStatusInfo; | ||
| 386 | + loger.log("2222222222222222222222222"); | ||
| 387 | + console.log(GlobalConfig.classStatusInfo);*/ | ||
| 371 | 388 | ||
| 372 | //console.log(_data.currentInfo); | 389 | //console.log(_data.currentInfo); |
| 373 | GlobalConfig.setClassStatusInfo(_data.currentInfo); | 390 | GlobalConfig.setClassStatusInfo(_data.currentInfo); |
| 374 | console.log(GlobalConfig.classStatusInfo) | 391 | console.log(GlobalConfig.classStatusInfo) |
| 375 | - }else { | 392 | + } else { |
| 376 | loger.log("还没有保存过会议状信息"); | 393 | loger.log("还没有保存过会议状信息"); |
| 377 | } | 394 | } |
| 378 | 395 | ||
| @@ -381,75 +398,82 @@ export default class MessageEntrance extends Emiter { | @@ -381,75 +398,82 @@ export default class MessageEntrance extends Emiter { | ||
| 381 | } | 398 | } |
| 382 | 399 | ||
| 383 | //保存会议状态信息 | 400 | //保存会议状态信息 |
| 384 | - _sassSaveClassStatusInfo(){ | ||
| 385 | - if(GlobalConfig.isHost){ | 401 | + _sassSaveClassStatusInfo() { |
| 402 | + if (GlobalConfig.isHost) { | ||
| 386 | //用get保存数据,数据内容需要转为BASE64 | 403 | //用get保存数据,数据内容需要转为BASE64 |
| 387 | //let _classStatusInfo=EngineUtils.objectToBase64(GlobalConfig.classStatusInfo); | 404 | //let _classStatusInfo=EngineUtils.objectToBase64(GlobalConfig.classStatusInfo); |
| 388 | //loger.log("保存会议状态信息",_classStatusInfo); | 405 | //loger.log("保存会议状态信息",_classStatusInfo); |
| 389 | //_sass.saveClassStatusInfo({"classStatusInfo":_classStatusInfo});//保存会议状态信息 | 406 | //_sass.saveClassStatusInfo({"classStatusInfo":_classStatusInfo});//保存会议状态信息 |
| 390 | 407 | ||
| 391 | - //POST 保存数据 | ||
| 392 | - _sass.saveClassStatusInfo({"classStatusInfo":GlobalConfig.classStatusInfo});//保存会议状态信息 | ||
| 393 | - }else { | ||
| 394 | - loger.log("没有保存会议状态信息的权限 isHost",GlobalConfig.isHost); | 408 | + //只有加入会议之后才能保存数据 |
| 409 | + if (GlobalConfig.getCurrentStatus().code == GlobalConfig.statusCode_2.code) { | ||
| 410 | + //POST 保存数据 | ||
| 411 | + _sass.saveClassStatusInfo({"classStatusInfo": GlobalConfig.classStatusInfo});//保存会议状态信息 | ||
| 412 | + } else { | ||
| 413 | + loger.error("不能保存会议数据", GlobalConfig.getCurrentStatus()); | ||
| 414 | + } | ||
| 415 | + } else { | ||
| 416 | + loger.log("没有保存会议状态信息的权限 isHost", GlobalConfig.isHost); | ||
| 395 | } | 417 | } |
| 396 | } | 418 | } |
| 419 | + | ||
| 397 | //保存会态信息成功 | 420 | //保存会态信息成功 |
| 398 | - _sassSaveClassStatusInfoSuccessHandler(_data){ | ||
| 399 | - loger.log('保存会议状态信息成功.',_data); | 421 | + _sassSaveClassStatusInfoSuccessHandler(_data) { |
| 422 | + loger.log('保存会议状态信息成功.', _data); | ||
| 400 | } | 423 | } |
| 401 | 424 | ||
| 402 | //Sass校验流程结束之后,开始加入MCU | 425 | //Sass校验流程结束之后,开始加入MCU |
| 403 | - _joinMCU(){ | 426 | + _joinMCU() { |
| 404 | loger.log('加入底层MCU会议.'); | 427 | loger.log('加入底层MCU会议.'); |
| 405 | - if(_mcu){ | 428 | + if (_mcu) { |
| 406 | _mcu.joinMCU(GlobalConfig.getClassInfo()); | 429 | _mcu.joinMCU(GlobalConfig.getClassInfo()); |
| 407 | } | 430 | } |
| 408 | } | 431 | } |
| 432 | + | ||
| 409 | // MCU 会议成功 | 433 | // MCU 会议成功 |
| 410 | _joinClassSuccessHandler(_data) { | 434 | _joinClassSuccessHandler(_data) { |
| 411 | loger.log('MCU 会议成功.'); | 435 | loger.log('MCU 会议成功.'); |
| 412 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2); | 436 | GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2); |
| 413 | 437 | ||
| 414 | //返回给客户数据 | 438 | //返回给客户数据 |
| 415 | - if(_joinClassSuccessCallBackFun){ | 439 | + if (_joinClassSuccessCallBackFun) { |
| 416 | //返回给客户端初始化成功的数据 | 440 | //返回给客户端初始化成功的数据 |
| 417 | - let initSuccessCallBackData={}; | 441 | + let initSuccessCallBackData = {}; |
| 418 | 442 | ||
| 419 | //GlobalConfig.MCUServerIP=_data.MCUServerIP; | 443 | //GlobalConfig.MCUServerIP=_data.MCUServerIP; |
| 420 | // GlobalConfig.MCUServerPort=_data.MCUServerPort; | 444 | // GlobalConfig.MCUServerPort=_data.MCUServerPort; |
| 421 | 445 | ||
| 422 | - initSuccessCallBackData.doc=GlobalConfig.doc;//文档服务器地址 | ||
| 423 | - initSuccessCallBackData.classId=GlobalConfig.classId; | ||
| 424 | - initSuccessCallBackData.className=GlobalConfig.className; | ||
| 425 | - initSuccessCallBackData.h5Module=GlobalConfig.h5Module; | ||
| 426 | - initSuccessCallBackData.isHost=GlobalConfig.isHost; | ||
| 427 | - initSuccessCallBackData.maxAudioChannels=GlobalConfig.maxAudioChannels; | ||
| 428 | - initSuccessCallBackData.maxVideoChannels=GlobalConfig.maxVideoChannels; | ||
| 429 | - initSuccessCallBackData.maxMediaChannels=GlobalConfig.maxMediaChannels; | ||
| 430 | - initSuccessCallBackData.mcuDelay=GlobalConfig.mcuDelay; | ||
| 431 | - | ||
| 432 | - initSuccessCallBackData.msType=GlobalConfig.msType; | ||
| 433 | - initSuccessCallBackData.nodeId=GlobalConfig.nodeId; | ||
| 434 | - initSuccessCallBackData.password=GlobalConfig.password; | ||
| 435 | - initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;// 老师的默认是true | 446 | + initSuccessCallBackData.doc = GlobalConfig.doc;//文档服务器地址 |
| 447 | + initSuccessCallBackData.classId = GlobalConfig.classId; | ||
| 448 | + initSuccessCallBackData.className = GlobalConfig.className; | ||
| 449 | + initSuccessCallBackData.h5Module = GlobalConfig.h5Module; | ||
| 450 | + initSuccessCallBackData.isHost = GlobalConfig.isHost; | ||
| 451 | + initSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels; | ||
| 452 | + initSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels; | ||
| 453 | + initSuccessCallBackData.maxMediaChannels = GlobalConfig.maxMediaChannels; | ||
| 454 | + initSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay; | ||
| 455 | + | ||
| 456 | + initSuccessCallBackData.msType = GlobalConfig.msType; | ||
| 457 | + initSuccessCallBackData.nodeId = GlobalConfig.nodeId; | ||
| 458 | + initSuccessCallBackData.password = GlobalConfig.password; | ||
| 459 | + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true | ||
| 436 | //GlobalConfig.passwordRequired 老师的默认是true | 460 | //GlobalConfig.passwordRequired 老师的默认是true |
| 437 | //GlobalConfig.portal=_data.portal; | 461 | //GlobalConfig.portal=_data.portal; |
| 438 | - initSuccessCallBackData.role=GlobalConfig.role; | ||
| 439 | - initSuccessCallBackData.siteId=GlobalConfig.siteId; | ||
| 440 | - initSuccessCallBackData.topNodeID=GlobalConfig.topNodeID; | ||
| 441 | - initSuccessCallBackData.userId=GlobalConfig.userId; | ||
| 442 | - initSuccessCallBackData.userName=GlobalConfig.userName; | ||
| 443 | - initSuccessCallBackData.userRole=GlobalConfig.userRole; | ||
| 444 | - initSuccessCallBackData.userType=GlobalConfig.userType; | ||
| 445 | - | ||
| 446 | - initSuccessCallBackData.siteId=GlobalConfig.siteId; | ||
| 447 | - initSuccessCallBackData.classId=GlobalConfig.classId; | ||
| 448 | - initSuccessCallBackData.userRole=GlobalConfig.userRole; | ||
| 449 | - initSuccessCallBackData.userId=GlobalConfig.userId; | ||
| 450 | - initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired; | ||
| 451 | - initSuccessCallBackData.classType=GlobalConfig.classType||ApeConsts.CLASS_TYPE_INTERACT; | ||
| 452 | - loger.log('加入会议成功',initSuccessCallBackData); | 462 | + initSuccessCallBackData.role = GlobalConfig.role; |
| 463 | + initSuccessCallBackData.siteId = GlobalConfig.siteId; | ||
| 464 | + initSuccessCallBackData.topNodeID = GlobalConfig.topNodeID; | ||
| 465 | + initSuccessCallBackData.userId = GlobalConfig.userId; | ||
| 466 | + initSuccessCallBackData.userName = GlobalConfig.userName; | ||
| 467 | + initSuccessCallBackData.userRole = GlobalConfig.userRole; | ||
| 468 | + initSuccessCallBackData.userType = GlobalConfig.userType; | ||
| 469 | + | ||
| 470 | + initSuccessCallBackData.siteId = GlobalConfig.siteId; | ||
| 471 | + initSuccessCallBackData.classId = GlobalConfig.classId; | ||
| 472 | + initSuccessCallBackData.userRole = GlobalConfig.userRole; | ||
| 473 | + initSuccessCallBackData.userId = GlobalConfig.userId; | ||
| 474 | + initSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; | ||
| 475 | + initSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT; | ||
| 476 | + loger.log('加入会议成功', initSuccessCallBackData); | ||
| 453 | _joinClassSuccessCallBackFun(initSuccessCallBackData); | 477 | _joinClassSuccessCallBackFun(initSuccessCallBackData); |
| 454 | } | 478 | } |
| 455 | 479 | ||
| @@ -528,28 +552,29 @@ export default class MessageEntrance extends Emiter { | @@ -528,28 +552,29 @@ export default class MessageEntrance extends Emiter { | ||
| 528 | } | 552 | } |
| 529 | 553 | ||
| 530 | //Sass删除文档数据 | 554 | //Sass删除文档数据 |
| 531 | - _sassDeleteDocument(_param){ | 555 | + _sassDeleteDocument(_param) { |
| 532 | //判断传入的参数是否存在 | 556 | //判断传入的参数是否存在 |
| 533 | - if(_param==null||EngineUtils.isEmptyObject(_param)){ | ||
| 534 | - loger.error('sassDeleteDocument失败,参数错误',_param); | ||
| 535 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED_PARAM); | ||
| 536 | - return ; | 557 | + if (_param == null || EngineUtils.isEmptyObject(_param)) { |
| 558 | + loger.error('sassDeleteDocument失败,参数错误', _param); | ||
| 559 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_DOC_DELETE_FAILED_PARAM); | ||
| 560 | + return; | ||
| 537 | } | 561 | } |
| 538 | //判断必要的参数字段值 | 562 | //判断必要的参数字段值 |
| 539 | - if(_param.itemIdx==null||isNaN(_param.itemIdx)||_param.docId==null||_param.docId==""){ | ||
| 540 | - loger.error('sassDeleteDocument失败',_param); | ||
| 541 | - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED_PARAM); | ||
| 542 | - return ; | 563 | + if (_param.itemIdx == null || isNaN(_param.itemIdx) || _param.docId == null || _param.docId == "") { |
| 564 | + loger.error('sassDeleteDocument失败', _param); | ||
| 565 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_DOC_DELETE_FAILED_PARAM); | ||
| 566 | + return; | ||
| 543 | } | 567 | } |
| 544 | - loger.log('_sassDeleteDocument',_param); | 568 | + loger.log('_sassDeleteDocument', _param); |
| 545 | 569 | ||
| 546 | - if(_sass){ | 570 | + if (_sass) { |
| 547 | _sass.sassDeleteDocument(_param); | 571 | _sass.sassDeleteDocument(_param); |
| 548 | } | 572 | } |
| 549 | } | 573 | } |
| 574 | + | ||
| 550 | //Sass删除文档成功之后,同步删除MCU数据 | 575 | //Sass删除文档成功之后,同步删除MCU数据 |
| 551 | - _sassDeleteDocumentSuccess(_param){ | ||
| 552 | - loger.log('sassDeleteDocumentSuccess',_param); | 576 | + _sassDeleteDocumentSuccess(_param) { |
| 577 | + loger.log('sassDeleteDocumentSuccess', _param); | ||
| 553 | this._sendDocumentDelete(_param); | 578 | this._sendDocumentDelete(_param); |
| 554 | } | 579 | } |
| 555 | 580 | ||
| @@ -724,7 +749,8 @@ export default class MessageEntrance extends Emiter { | @@ -724,7 +749,8 @@ export default class MessageEntrance extends Emiter { | ||
| 724 | 749 | ||
| 725 | //// 文档变更,白板也需要做处理 | 750 | //// 文档变更,白板也需要做处理 |
| 726 | docUpdateHandler(_data) { | 751 | docUpdateHandler(_data) { |
| 727 | - loger.log('Doc UpdateId ->',_data); | 752 | + loger.log('Doc UpdateId ->'); |
| 753 | + console.log(_data); | ||
| 728 | if(_whiteboard_ape){ | 754 | if(_whiteboard_ape){ |
| 729 | _whiteboard_ape.docUpdateHandler(_data); | 755 | _whiteboard_ape.docUpdateHandler(_data); |
| 730 | } | 756 | } |
| @@ -19,6 +19,10 @@ ApeConsts.CLASS_PAUSING = "class.pause";//暂停 | @@ -19,6 +19,10 @@ ApeConsts.CLASS_PAUSING = "class.pause";//暂停 | ||
| 19 | ApeConsts.CLASS_PAUSING = "class.closed";//关闭 | 19 | ApeConsts.CLASS_PAUSING = "class.closed";//关闭 |
| 20 | ApeConsts.CLASS_PAUSING = "class.update";//更新当前的状态信息 | 20 | ApeConsts.CLASS_PAUSING = "class.update";//更新当前的状态信息 |
| 21 | 21 | ||
| 22 | + | ||
| 23 | +//课堂控制 | ||
| 24 | +ApeConsts.CLASS_ACTION_CLOSE_ALL=1;//所有人关闭会议 | ||
| 25 | + | ||
| 22 | //课堂类型 | 26 | //课堂类型 |
| 23 | ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看 | 27 | ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看 |
| 24 | ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 | 28 | ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 |
| @@ -61,7 +61,7 @@ class ChatApe extends Ape { | @@ -61,7 +61,7 @@ class ChatApe extends Ape { | ||
| 61 | chatSendPdu.fromRole = this._classInfo.userRole;// classRole已经废弃 | 61 | chatSendPdu.fromRole = this._classInfo.userRole;// classRole已经废弃 |
| 62 | chatSendPdu.isPublic = true; | 62 | chatSendPdu.isPublic = true; |
| 63 | // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { | 63 | // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { |
| 64 | - if (!chatSendPdu && 0!=chatSendPdu.peer) { | 64 | + if (!chatSendPdu.isPublic && 0!=chatSendPdu.peer) { |
| 65 | //发送给制定的人 | 65 | //发送给制定的人 |
| 66 | loger.log('发送私聊消息.'); | 66 | loger.log('发送私聊消息.'); |
| 67 | this.send(chatSendPdu); | 67 | this.send(chatSendPdu); |
| @@ -11,6 +11,8 @@ import UTF8 from 'utf-8'; | @@ -11,6 +11,8 @@ import UTF8 from 'utf-8'; | ||
| 11 | import Loger from 'Loger'; | 11 | import Loger from 'Loger'; |
| 12 | import GlobalConfig from 'GlobalConfig'; | 12 | import GlobalConfig from 'GlobalConfig'; |
| 13 | import EngineUtils from 'EngineUtils'; | 13 | import EngineUtils from 'EngineUtils'; |
| 14 | + | ||
| 15 | + | ||
| 14 | let loger = Loger.getLoger('ConferApe'); | 16 | let loger = Loger.getLoger('ConferApe'); |
| 15 | let itemIdx=0;//table插入新数据的计数id,目前用时间戳 | 17 | let itemIdx=0;//table插入新数据的计数id,目前用时间戳 |
| 16 | let timerCounter; | 18 | let timerCounter; |
| @@ -57,6 +59,7 @@ class ConferApe extends Ape { | @@ -57,6 +59,7 @@ class ConferApe extends Ape { | ||
| 57 | 59 | ||
| 58 | this.on(pdu.RCPDU_SESSION_JOIN_RESPONSE, this._joinSessionHandler.bind(this)); | 60 | this.on(pdu.RCPDU_SESSION_JOIN_RESPONSE, this._joinSessionHandler.bind(this)); |
| 59 | 61 | ||
| 62 | + this.on(pdu.RCPDU_CONFERENCE_SEND_DATA_REQUEST, this.conferMsgComingHandler.bind(this));//这个是会议消息类型,flash里在使用这里不再使用,各个模块的消息由模块自己来处理 | ||
| 60 | } | 63 | } |
| 61 | 64 | ||
| 62 | 65 | ||
| @@ -96,6 +99,48 @@ class ConferApe extends Ape { | @@ -96,6 +99,48 @@ class ConferApe extends Ape { | ||
| 96 | this.sendUniform(adapterPdu, true); | 99 | this.sendUniform(adapterPdu, true); |
| 97 | } | 100 | } |
| 98 | 101 | ||
| 102 | + sendConferMsg(_messageInfo) { | ||
| 103 | + if(this._classInfo===null||EngineUtils.isEmptyObject(this._classInfo)){ | ||
| 104 | + loger.log('不能发送会议消息.McuClient还未初始化数据!'); | ||
| 105 | + if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){ | ||
| 106 | + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN); | ||
| 107 | + return; | ||
| 108 | + } | ||
| 109 | + return ; | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + // to, message | ||
| 113 | + loger.log('发送会议消息.', _messageInfo); | ||
| 114 | + | ||
| 115 | +/* message RCConferenceSendDataRequestPdu { | ||
| 116 | + optional uint32 initiator = 1; | ||
| 117 | + optional uint32 peer = 2; | ||
| 118 | + required bool is_public = 3; | ||
| 119 | + required bytes user_data = 4; | ||
| 120 | + } | ||
| 121 | + */ | ||
| 122 | + | ||
| 123 | + let chatSendPdu = new pdu['RCConferenceSendDataRequestPdu']; | ||
| 124 | + chatSendPdu.type = pdu.RCPDU_CONFERENCE_SEND_DATA_REQUEST; | ||
| 125 | + chatSendPdu.initiator = this._classInfo.nodeId;//发起人 | ||
| 126 | + chatSendPdu.peer = parseInt(_messageInfo.to);//发送给谁,公聊的时候是0,私聊的时候是指定的用户id | ||
| 127 | + | ||
| 128 | + chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message); | ||
| 129 | + //chatSendPdu.userData =UTF8.setBytesFromString(_messageInfo.message); | ||
| 130 | + chatSendPdu.isPublic = true; | ||
| 131 | + chatSendPdu.actionType=_messageInfo.actionType; | ||
| 132 | + // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { | ||
| 133 | + if (!chatSendPdu.isPublic && 0!=chatSendPdu.peer) { | ||
| 134 | + //发送给制定的人 | ||
| 135 | + loger.log('发送私聊会议消息.'); | ||
| 136 | + this.send(chatSendPdu); | ||
| 137 | + } else { | ||
| 138 | + //发送给所有人 | ||
| 139 | + loger.log('发送公聊会议消息.'); | ||
| 140 | + this.sendChatUniform(chatSendPdu); | ||
| 141 | + } | ||
| 142 | + } | ||
| 143 | + | ||
| 99 | //主动离开会议,发送通知到服务器 | 144 | //主动离开会议,发送通知到服务器 |
| 100 | leaveClass(){ | 145 | leaveClass(){ |
| 101 | let nodeInfoRecordPdu = this.mcu.mcuClassInfo.self; | 146 | let nodeInfoRecordPdu = this.mcu.mcuClassInfo.self; |
| @@ -132,6 +177,13 @@ class ConferApe extends Ape { | @@ -132,6 +177,13 @@ class ConferApe extends Ape { | ||
| 132 | } | 177 | } |
| 133 | 178 | ||
| 134 | 179 | ||
| 180 | + //还原课堂状态 | ||
| 181 | + restorClass(){ | ||
| 182 | + GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT; | ||
| 183 | + GlobalConfig.classStopTime=EngineUtils.creatTimestampStr(); | ||
| 184 | + this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); | ||
| 185 | + this.sendUpdaterClassStatusInfo({"actionType":0}); | ||
| 186 | + } | ||
| 135 | 187 | ||
| 136 | //开始上课 | 188 | //开始上课 |
| 137 | startClass(_param){ | 189 | startClass(_param){ |
| @@ -145,7 +197,7 @@ class ConferApe extends Ape { | @@ -145,7 +197,7 @@ class ConferApe extends Ape { | ||
| 145 | GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_STARTED; | 197 | GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_STARTED; |
| 146 | //_param.actionType=ACTION_TYPE_1; | 198 | //_param.actionType=ACTION_TYPE_1; |
| 147 | this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); | 199 | this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); |
| 148 | - this.sendUpdaterClassStatusInfo(_param); | 200 | + this.sendUpdaterClassStatusInfo({"actionType":1}); |
| 149 | } | 201 | } |
| 150 | //暂停上课 | 202 | //暂停上课 |
| 151 | pauseClass(_param){ | 203 | pauseClass(_param){ |
| @@ -158,7 +210,7 @@ class ConferApe extends Ape { | @@ -158,7 +210,7 @@ class ConferApe extends Ape { | ||
| 158 | GlobalConfig.classStopTime=EngineUtils.creatTimestampStr(); | 210 | GlobalConfig.classStopTime=EngineUtils.creatTimestampStr(); |
| 159 | //_param.actionType=ACTION_TYPE_2; | 211 | //_param.actionType=ACTION_TYPE_2; |
| 160 | this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); | 212 | this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); |
| 161 | - this.sendUpdaterClassStatusInfo(_param); | 213 | + this.sendUpdaterClassStatusInfo({"actionType":2}); |
| 162 | } | 214 | } |
| 163 | //关闭课堂 | 215 | //关闭课堂 |
| 164 | closeClass(_param){ | 216 | closeClass(_param){ |
| @@ -167,12 +219,8 @@ class ConferApe extends Ape { | @@ -167,12 +219,8 @@ class ConferApe extends Ape { | ||
| 167 | return; | 219 | return; |
| 168 | } | 220 | } |
| 169 | 221 | ||
| 170 | - //把所有人都踢出课堂,然后把状态值还原为1 | ||
| 171 | - GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// | ||
| 172 | - GlobalConfig.classStopTime=EngineUtils.creatTimestampStr(); | ||
| 173 | - //_param.actionType=ACTION_TYPE_3; | ||
| 174 | - this._emit(MessageTypes.CLASS_STATUS_INFO_CHANGE); | ||
| 175 | - this.sendUpdaterClassStatusInfo(_param); | 222 | + //把所有人都踢出课堂 |
| 223 | + this.sendConferMsg({"to":0,"message":"所有人退出会议","actionType":ApeConsts.CLASS_ACTION_CLOSE_ALL}); | ||
| 176 | } | 224 | } |
| 177 | 225 | ||
| 178 | 226 | ||
| @@ -302,13 +350,86 @@ class ConferApe extends Ape { | @@ -302,13 +350,86 @@ class ConferApe extends Ape { | ||
| 302 | try { | 350 | try { |
| 303 | let model=this.unPackPdu(owner, itemIdx,itemData); | 351 | let model=this.unPackPdu(owner, itemIdx,itemData); |
| 304 | loger.log('tableUpdateHandler',model); | 352 | loger.log('tableUpdateHandler',model); |
| 353 | + | ||
| 305 | //处理会议更新的信息 | 354 | //处理会议更新的信息 |
| 355 | + if(model&&model.classStatusInfo){ | ||
| 356 | + GlobalConfig.setClassStatusInfo(model.classStatusInfo); | ||
| 357 | + } | ||
| 358 | + | ||
| 359 | + switch(GlobalConfig.classStatus){ | ||
| 360 | + case ApeConsts.CLASS_STATUS_WAIT: | ||
| 361 | + break; | ||
| 362 | + case ApeConsts.CLASS_STATUS_STARTED: | ||
| 363 | + break; | ||
| 364 | + case ApeConsts.CLASS_STATUS_PAUSE: | ||
| 365 | + break; | ||
| 366 | + case ApeConsts.CLASS_STATUS_CLOSE: | ||
| 367 | + break; | ||
| 368 | + default: | ||
| 369 | + break; | ||
| 370 | + | ||
| 371 | + } | ||
| 372 | + //_confer_ape.on(MessageTypes.CLASS_CLOSE, this._doClassClose.bind(this));//会议关闭,所有人都退出 | ||
| 373 | + /*{ | ||
| 374 | + "itemIdx": 720899, | ||
| 375 | + "from": 161770995, | ||
| 376 | + "owner": 161770995, | ||
| 377 | + "actionType": null, | ||
| 378 | + "classStatusInfo": { | ||
| 379 | + "nodeId": 161770995, | ||
| 380 | + "userId": "0", | ||
| 381 | + "userName": "mcuTest1487161768", | ||
| 382 | + "siteId": "h5test", | ||
| 383 | + "classId": 1730033559, | ||
| 384 | + "className": "mcuClient", | ||
| 385 | + "classType": 1, | ||
| 386 | + "classStatus": 0, | ||
| 387 | + "classStartTime": "2017-2-15-20-30-11", | ||
| 388 | + "classStopTime": "2017-2-15-20-30-28", | ||
| 389 | + "classTimestamp": 0, | ||
| 390 | + "classBeginTime": "2017-02-13 10:00:00", | ||
| 391 | + "classEndTime": "2017-02-22 12:00:00", | ||
| 392 | + "recordStatus": false, | ||
| 393 | + "recordTimestamp": 0, | ||
| 394 | + "recordFileName": "", | ||
| 395 | + "recordDownloadUrl": "xxxxxxxxxxxxxxxxxxxxx", | ||
| 396 | + "serverTimestamp": 161828290, | ||
| 397 | + "activeDocId": 0, | ||
| 398 | + "activeDocCurPage": 1 | ||
| 399 | + } | ||
| 400 | + }*/ | ||
| 401 | + | ||
| 306 | } catch (e) { | 402 | } catch (e) { |
| 307 | loger.warn('ConferApe table update got exception. itemIdx',itemIdx); | 403 | loger.warn('ConferApe table update got exception. itemIdx',itemIdx); |
| 308 | } | 404 | } |
| 309 | } | 405 | } |
| 310 | 406 | ||
| 311 | 407 | ||
| 408 | + conferMsgComingHandler(_data) { | ||
| 409 | + //flash RCConferenceSendDataRequestPdu | ||
| 410 | + //loger.warn('conferMsgComingHandler needs to be handled.'); | ||
| 411 | + //const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu); | ||
| 412 | + //loger.log("conferMsgComingHandler",recordInfo); | ||
| 413 | + | ||
| 414 | + var chatReceivePdu = pdu['RCConferenceSendDataRequestPdu'].decode(_data); | ||
| 415 | + | ||
| 416 | + var chatMsg = {}; | ||
| 417 | + chatMsg.fromNodeID = chatReceivePdu.initiator; | ||
| 418 | + chatMsg.toNodeID = chatReceivePdu.peer; | ||
| 419 | + chatMsg.message = this._rCArrayBufferUtil.uint8ArrayToStr(chatReceivePdu.userData, 2); | ||
| 420 | + chatMsg.actionType=chatReceivePdu.actionType; | ||
| 421 | + loger.log("conferMsgComingHandler",chatMsg); | ||
| 422 | + switch (chatMsg.ctionType){ | ||
| 423 | + case ApeConsts.CLASS_ACTION_CLOSE_ALL: | ||
| 424 | + loger.log(chatMsg.message); | ||
| 425 | + //会议关闭,所有人都退出 | ||
| 426 | + this._emit(MessageTypes.CLASS_CLOSE); | ||
| 427 | + break; | ||
| 428 | + default: | ||
| 429 | + break; | ||
| 430 | + } | ||
| 431 | + } | ||
| 432 | + | ||
| 312 | rosterInsertHandler(nodeId, nodeData) { | 433 | rosterInsertHandler(nodeId, nodeData) { |
| 313 | if(GlobalConfig.nodeId==nodeId){ | 434 | if(GlobalConfig.nodeId==nodeId){ |
| 314 | loger.log("自己加入 rosterInsertHandler"); | 435 | loger.log("自己加入 rosterInsertHandler"); |
| @@ -188,7 +188,7 @@ class DocApe extends Ape { | @@ -188,7 +188,7 @@ class DocApe extends Ape { | ||
| 188 | } | 188 | } |
| 189 | //更新数据的字段 | 189 | //更新数据的字段 |
| 190 | docDataModel.action=ApeConsts.DOC_ACTION_COMMAND; | 190 | docDataModel.action=ApeConsts.DOC_ACTION_COMMAND; |
| 191 | - docDataModel.scale=parseInt(paramInfo.scale)||100;//默认是100(百分比) | 191 | + //docDataModel.scale=parseInt(paramInfo.scale)||100;//默认是100(百分比) |
| 192 | this.updaterDoc(docDataModel,docDataModel.itemIdx); | 192 | this.updaterDoc(docDataModel,docDataModel.itemIdx); |
| 193 | } | 193 | } |
| 194 | 194 | ||
| @@ -234,14 +234,13 @@ class DocApe extends Ape { | @@ -234,14 +234,13 @@ class DocApe extends Ape { | ||
| 234 | //loger.log('tableInsertHandler---',itemData); | 234 | //loger.log('tableInsertHandler---',itemData); |
| 235 | let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); | 235 | let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); |
| 236 | this.docList[itemIdx] = itemDataInfo; | 236 | this.docList[itemIdx] = itemDataInfo; |
| 237 | - loger.log('tableInsertHandler',itemDataInfo); | ||
| 238 | - //this._emit(MessageTypes.DOC_UPLOAD,itemDataInfo); | ||
| 239 | 237 | ||
| 240 | - if(itemDataInfo.visible=="true"||itemDataInfo.visible==true){ | 238 | + if(itemDataInfo.visible==="true"||itemDataInfo.visible===true){ |
| 241 | GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID | 239 | GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID |
| 242 | GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页 | 240 | GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页 |
| 243 | } | 241 | } |
| 244 | - | 242 | + loger.log('tableInsertHandler 发送给客户端'); |
| 243 | + console.log(itemDataInfo); | ||
| 245 | this._emit(MessageTypes.DOC_UPDATE,itemDataInfo);//用添加和更新都统一DOC_UPDATE | 244 | this._emit(MessageTypes.DOC_UPDATE,itemDataInfo);//用添加和更新都统一DOC_UPDATE |
| 246 | } | 245 | } |
| 247 | 246 | ||
| @@ -268,7 +267,7 @@ class DocApe extends Ape { | @@ -268,7 +267,7 @@ class DocApe extends Ape { | ||
| 268 | let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); | 267 | let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); |
| 269 | if(itemDataInfo!=null){ | 268 | if(itemDataInfo!=null){ |
| 270 | this.docList[itemIdx] = itemDataInfo; | 269 | this.docList[itemIdx] = itemDataInfo; |
| 271 | - loger.log('tableUpdateHandler',itemDataInfo); | 270 | + |
| 272 | /* switch (itemDataInfo.action){ | 271 | /* switch (itemDataInfo.action){ |
| 273 | case DOC_ACTION_SWITCH_DOC: | 272 | case DOC_ACTION_SWITCH_DOC: |
| 274 | break; | 273 | break; |
| @@ -281,12 +280,14 @@ class DocApe extends Ape { | @@ -281,12 +280,14 @@ class DocApe extends Ape { | ||
| 281 | }*/ | 280 | }*/ |
| 282 | GlobalConfig.activeDocId=0;//默认id | 281 | GlobalConfig.activeDocId=0;//默认id |
| 283 | GlobalConfig.activeDocCurPage=1;//默认页数 | 282 | GlobalConfig.activeDocCurPage=1;//默认页数 |
| 284 | - | ||
| 285 | - if(itemDataInfo.visible=="true"||itemDataInfo.visible==true){ | 283 | + if(itemDataInfo&&(itemDataInfo.visible==="true"||itemDataInfo.visible===true)){ |
| 286 | GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID | 284 | GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID |
| 287 | GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页 | 285 | GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页 |
| 288 | } | 286 | } |
| 287 | + loger.log('tableUpdateHandler 发送给客户端'); | ||
| 288 | + console.log(itemDataInfo); | ||
| 289 | this._emit(MessageTypes.DOC_UPDATE,itemDataInfo); | 289 | this._emit(MessageTypes.DOC_UPDATE,itemDataInfo); |
| 290 | + | ||
| 290 | }else { | 291 | }else { |
| 291 | loger.log('tableUpdateHandler 数据无效--> itemIdx',itemIdx); | 292 | loger.log('tableUpdateHandler 数据无效--> itemIdx',itemIdx); |
| 292 | } | 293 | } |
| @@ -409,8 +410,7 @@ class DocApe extends Ape { | @@ -409,8 +410,7 @@ class DocApe extends Ape { | ||
| 409 | 410 | ||
| 410 | try{ | 411 | try{ |
| 411 | let docModelPdu= pdu['RCDocSendDataModelPdu'].decode(itemData); | 412 | let docModelPdu= pdu['RCDocSendDataModelPdu'].decode(itemData); |
| 412 | - //console.log(whiteBoardModelPdu); | ||
| 413 | - //loger.log(docModelPdu); | 413 | + loger.log(docModelPdu); |
| 414 | return docModelPdu; | 414 | return docModelPdu; |
| 415 | }catch (err){ | 415 | }catch (err){ |
| 416 | loger.log("文档收到数据 unPackPdu Pdu解析错误,itemIdx="+itemIdx+" err:"+err.message); | 416 | loger.log("文档收到数据 unPackPdu Pdu解析错误,itemIdx="+itemIdx+" err:"+err.message); |
| @@ -233,7 +233,8 @@ class WhiteBoardApe extends Ape { | @@ -233,7 +233,8 @@ class WhiteBoardApe extends Ape { | ||
| 233 | 233 | ||
| 234 | tableInsertHandler(owner, itemIdx,itemData) { | 234 | tableInsertHandler(owner, itemIdx,itemData) { |
| 235 | let whiteBoardModel=this.unPackPdu(owner, itemIdx,itemData); | 235 | let whiteBoardModel=this.unPackPdu(owner, itemIdx,itemData); |
| 236 | - loger.log('tableInsertHandler',whiteBoardModel); | 236 | + loger.log('tableInsertHandler'); |
| 237 | + console.log(whiteBoardModel); | ||
| 237 | if(whiteBoardModel){ | 238 | if(whiteBoardModel){ |
| 238 | if(GlobalConfig.activeDocId==whiteBoardModel.parentId&&GlobalConfig.activeDocCurPage==whiteBoardModel.curPageNo){ | 239 | if(GlobalConfig.activeDocId==whiteBoardModel.parentId&&GlobalConfig.activeDocCurPage==whiteBoardModel.curPageNo){ |
| 239 | loger.log('WHITEBOARD_ANNOTAION_INSERT 显示到界面上',whiteBoardModel); | 240 | loger.log('WHITEBOARD_ANNOTAION_INSERT 显示到界面上',whiteBoardModel); |
| @@ -244,7 +245,8 @@ class WhiteBoardApe extends Ape { | @@ -244,7 +245,8 @@ class WhiteBoardApe extends Ape { | ||
| 244 | } | 245 | } |
| 245 | tableUpdateHandler(owner, itemIdx, itemData) { | 246 | tableUpdateHandler(owner, itemIdx, itemData) { |
| 246 | let whiteBoardModel=this.unPackPdu(owner, itemIdx,itemData); | 247 | let whiteBoardModel=this.unPackPdu(owner, itemIdx,itemData); |
| 247 | - loger.log('tableUpdateHandler',whiteBoardModel); | 248 | + loger.log('tableUpdateHandler'); |
| 249 | + console.log(whiteBoardModel); | ||
| 248 | if(whiteBoardModel&&whiteBoardModel.parentId==GlobalConfig.activeDocId&&whiteBoardModel.curPageNo==GlobalConfig.activeDocCurPage){ | 250 | if(whiteBoardModel&&whiteBoardModel.parentId==GlobalConfig.activeDocId&&whiteBoardModel.curPageNo==GlobalConfig.activeDocCurPage){ |
| 249 | this.updateAandShowAnnotaion(); | 251 | this.updateAandShowAnnotaion(); |
| 250 | } | 252 | } |
| @@ -267,7 +269,8 @@ class WhiteBoardApe extends Ape { | @@ -267,7 +269,8 @@ class WhiteBoardApe extends Ape { | ||
| 267 | } | 269 | } |
| 268 | //文档更新,白板也要更新 | 270 | //文档更新,白板也要更新 |
| 269 | docUpdateHandler(_data){ | 271 | docUpdateHandler(_data){ |
| 270 | - loger.log("白板收到文档更新的消息docUpdateHandler",_data); | 272 | + loger.log("白板收到文档更新的消息docUpdateHandler"); |
| 273 | + console.log(_data); | ||
| 271 | 274 | ||
| 272 | //如果切换了文档或翻页,清除之前的添加步骤记录 | 275 | //如果切换了文档或翻页,清除之前的添加步骤记录 |
| 273 | if(_data.action==ApeConsts.DOC_ACTION_SWITCH_DOC){ | 276 | if(_data.action==ApeConsts.DOC_ACTION_SWITCH_DOC){ |
| @@ -688,6 +688,7 @@ message RCConferenceSendDataRequestPdu { | @@ -688,6 +688,7 @@ message RCConferenceSendDataRequestPdu { | ||
| 688 | optional uint32 peer = 2; | 688 | optional uint32 peer = 2; |
| 689 | required bool is_public = 3; | 689 | required bool is_public = 3; |
| 690 | required bytes user_data = 4; | 690 | required bytes user_data = 4; |
| 691 | + optional uint32 action_type = 5;//消息的指令类型 | ||
| 691 | } | 692 | } |
| 692 | 693 | ||
| 693 | message RCChatSendDataRequestPdu { | 694 | message RCChatSendDataRequestPdu { |
-
请 注册 或 登录 后发表评论