李勇

1.增加文档删除的Sass接口,Sass删除文档成功之后再同步到mcu

2.文档的监听事件统一为DOC_UPDATE,减少应用层事件监听
此 diff 太大无法显示。
@@ -59,8 +59,9 @@ export default class MessageEntrance extends Emiter { @@ -59,8 +59,9 @@ export default class MessageEntrance extends Emiter {
59 _sass.on('*', (type, data) => this._emit(type, data)); 59 _sass.on('*', (type, data) => this._emit(type, data));
60 _sass.on(_sass.SUCCESS, this._sassVerifySuccessHandler.bind(this)); 60 _sass.on(_sass.SUCCESS, this._sassVerifySuccessHandler.bind(this));
61 _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this)); 61 _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this));
62 - _sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._h5SassGetClassDetailSuccessHandler.bind(this));  
63 - _sass.on(_sass.CLASS_GET_CLASS_PARAM,this._h5SassGetClassParaSuccessHandler); 62 + _sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._sassGetClassDetailSuccessHandler.bind(this));
  63 + _sass.on(_sass.CLASS_GET_CLASS_PARAM,this._sassGetClassParaSuccessHandler.bind(this));
  64 + _sass.on(_sass.DELETE_DOCUMENT_SUCCESS,this._sassDeleteDocumentSuccess.bind(this));
64 65
65 // 底层MCU消息层 66 // 底层MCU消息层
66 _mcu = Mcu; 67 _mcu = Mcu;
@@ -113,7 +114,7 @@ export default class MessageEntrance extends Emiter { @@ -113,7 +114,7 @@ export default class MessageEntrance extends Emiter {
113 114
114 //whiteBoradApe 115 //whiteBoradApe
115 this.sendInsertAnnotaion=this._sendInsertAnnotaion; 116 this.sendInsertAnnotaion=this._sendInsertAnnotaion;
116 - this.sendDeleteAnnotaion=this._sendDeleteAnnotaion; 117 + //this.sendDeleteAnnotaion=this._sendDeleteAnnotaion;
117 this.sendDeleteAllAnnotation=this._sendDeleteAllAnnotation; 118 this.sendDeleteAllAnnotation=this._sendDeleteAllAnnotation;
118 this.sendGotoPrev=this._sendGotoPrev; 119 this.sendGotoPrev=this._sendGotoPrev;
119 120
@@ -121,8 +122,8 @@ export default class MessageEntrance extends Emiter { @@ -121,8 +122,8 @@ export default class MessageEntrance extends Emiter {
121 this.sendDocumentUpload= this._sendDocumentUpload;//上传文档 122 this.sendDocumentUpload= this._sendDocumentUpload;//上传文档
122 this.sendDocumentSwitchDoc= this._sendDocumentSwitchDoc; //切换文档 123 this.sendDocumentSwitchDoc= this._sendDocumentSwitchDoc; //切换文档
123 this.sendDocumentSwitchPage= this._sendDocumentSwitchPage;//翻页 124 this.sendDocumentSwitchPage= this._sendDocumentSwitchPage;//翻页
124 - this.sendDocumentDelete= this. _sendDocumentDelete;//删除文档  
125 - this.sendDocumentDeleteAll= this._documentDeleteAll;//删除所有文档 125 + this.sendDocumentDelete= this. _sassDeleteDocument;//删除文档,先通过Sass删除,sass删除成功之后再同步mcu
  126 + //this.sendDocumentDeleteAll= this._documentDeleteAll;//删除所有文档
126 this.sendDocumentCommand= this._sendDocumentCommand;//操作文档(翻页、缩放、滚动...) 127 this.sendDocumentCommand= this._sendDocumentCommand;//操作文档(翻页、缩放、滚动...)
127 128
128 } 129 }
@@ -147,6 +148,7 @@ export default class MessageEntrance extends Emiter { @@ -147,6 +148,7 @@ export default class MessageEntrance extends Emiter {
147 return GlobalConfig.getClassDetail(); 148 return GlobalConfig.getClassDetail();
148 } 149 }
149 150
  151 + //Sass
150 //初始化 152 //初始化
151 _init(_param,_onSuccess,_mcuErrorCallBack){ 153 _init(_param,_onSuccess,_mcuErrorCallBack){
152 _initSuccessCallBackFun=_onSuccess; 154 _initSuccessCallBackFun=_onSuccess;
@@ -155,13 +157,13 @@ export default class MessageEntrance extends Emiter { @@ -155,13 +157,13 @@ export default class MessageEntrance extends Emiter {
155 //判断传入的参数是否存在 157 //判断传入的参数是否存在
156 if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null||_mcuErrorCallBack==null){ 158 if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null||_mcuErrorCallBack==null){
157 loger.error('init初始化失败,参数错误'); 159 loger.error('init初始化失败,参数错误');
158 - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PAEAM); 160 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PARAM);
159 return ; 161 return ;
160 } 162 }
161 //判断必要的参数字段值 163 //判断必要的参数字段值
162 if(_param.classId==null||isNaN(_param.classId)||_param.portal==null||_param.portal==""){ 164 if(_param.classId==null||isNaN(_param.classId)||_param.portal==null||_param.portal==""){
163 loger.error('init初始化失败',_param); 165 loger.error('init初始化失败',_param);
164 - this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PAEAM); 166 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PARAM);
165 return ; 167 return ;
166 } 168 }
167 loger.log('init',_param); 169 loger.log('init',_param);
@@ -201,16 +203,6 @@ export default class MessageEntrance extends Emiter { @@ -201,16 +203,6 @@ export default class MessageEntrance extends Emiter {
201 _sass.passwordAndMd5Checking(GlobalConfig.getClassInfo()); 203 _sass.passwordAndMd5Checking(GlobalConfig.getClassInfo());
202 } 204 }
203 } 205 }
204 - // 离开会议  
205 - _leaveClass() {  
206 - if(_confer_ape){  
207 - _confer_ape.leaveClass();  
208 - }  
209 - if(_mcu){  
210 - _mcu.leaveMCU();  
211 - GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_3);  
212 - }  
213 - }  
214 206
215 // 用classId向SASS平台获取入会验证信息成功 207 // 用classId向SASS平台获取入会验证信息成功
216 _sassInitSuccessHandler(_data) { 208 _sassInitSuccessHandler(_data) {
@@ -278,7 +270,7 @@ export default class MessageEntrance extends Emiter { @@ -278,7 +270,7 @@ export default class MessageEntrance extends Emiter {
278 } 270 }
279 271
280 //获取会议所有参数 272 //获取会议所有参数
281 - _h5SassGetClassDetailSuccessHandler(_data){ 273 + _sassGetClassDetailSuccessHandler(_data){
282 loger.log('获取getClassDetail完成.'); 274 loger.log('获取getClassDetail完成.');
283 /* { 275 /* {
284 "cycle": 0, 276 "cycle": 0,
@@ -306,7 +298,7 @@ export default class MessageEntrance extends Emiter { @@ -306,7 +298,7 @@ export default class MessageEntrance extends Emiter {
306 } 298 }
307 299
308 //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getClassParam.do 300 //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getClassParam.do
309 - _h5SassGetClassParaSuccessHandler(_data){ 301 + _sassGetClassParaSuccessHandler(_data){
310 loger.log('获取api/meeting/detail.do完成.'); 302 loger.log('获取api/meeting/detail.do完成.');
311 303
312 //包含整个会议最全的信息,储存数据 304 //包含整个会议最全的信息,储存数据
@@ -399,6 +391,32 @@ export default class MessageEntrance extends Emiter { @@ -399,6 +391,32 @@ export default class MessageEntrance extends Emiter {
399 } 391 }
400 } 392 }
401 393
  394 + //Sass删除文档数据
  395 + _sassDeleteDocument(_param){
  396 + //判断传入的参数是否存在
  397 + if(_param==null||EngineUtils.isEmptyObject(_param)){
  398 + loger.error('sassDeleteDocument失败,参数错误',_param);
  399 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED_PARAM);
  400 + return ;
  401 + }
  402 + //判断必要的参数字段值
  403 + if(_param.itemIdx==null||isNaN(_param.itemIdx)||_param.docId==null||_param.docId==""){
  404 + loger.error('sassDeleteDocument失败',_param);
  405 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED_PARAM);
  406 + return ;
  407 + }
  408 + loger.log('_sassDeleteDocument',_param);
  409 +
  410 + if(_sass){
  411 + _sass.sassDeleteDocument(_param);
  412 + }
  413 + }
  414 + //Sass删除文档成功之后,同步删除MCU数据
  415 + _sassDeleteDocumentSuccess(_param){
  416 + loger.log('sassDeleteDocumentSuccess',_param);
  417 + this._sendDocumentDelete(_param);
  418 + }
  419 +
402 //ConferApe 420 //ConferApe
403 //开始上课 421 //开始上课
404 _sendStartClass(_param){ 422 _sendStartClass(_param){
@@ -418,7 +436,16 @@ export default class MessageEntrance extends Emiter { @@ -418,7 +436,16 @@ export default class MessageEntrance extends Emiter {
418 _confer_ape.closeClass(_param); 436 _confer_ape.closeClass(_param);
419 } 437 }
420 } 438 }
421 - 439 + // 离开会议
  440 + _leaveClass() {
  441 + if(_confer_ape){
  442 + _confer_ape.leaveClass();
  443 + }
  444 + if(_mcu){
  445 + _mcu.leaveMCU();
  446 + GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_3);
  447 + }
  448 + }
422 449
423 //ChatApe 450 //ChatApe
424 // 发送聊天消息 451 // 发送聊天消息
@@ -67,7 +67,7 @@ MessageTypes.MCU_ERROR ="mcuError";//MCU错误 @@ -67,7 +67,7 @@ MessageTypes.MCU_ERROR ="mcuError";//MCU错误
67 //---------------错误消息 ErrorCode 定义------------------------------------------------- 67 //---------------错误消息 ErrorCode 定义-------------------------------------------------
68 68
69 //会议初始化失败的几种情况 69 //会议初始化失败的几种情况
70 -MessageTypes.ERR_CLASS_INIT_PAEAM=100;//初始化参数错误 70 +MessageTypes.ERR_CLASS_INIT_PARAM=100;//初始化参数错误
71 MessageTypes.ERR_CLASS_INIT_NETWORK=101;//初始化网络错误 71 MessageTypes.ERR_CLASS_INIT_NETWORK=101;//初始化网络错误
72 MessageTypes.ERR_CLASS_INIT_PROTOCOL=102;//初始化协议错误 72 MessageTypes.ERR_CLASS_INIT_PROTOCOL=102;//初始化协议错误
73 MessageTypes.ERR_CLASS_INIT_FAILED=103;//初始化验证失败 73 MessageTypes.ERR_CLASS_INIT_FAILED=103;//初始化验证失败
@@ -94,6 +94,10 @@ MessageTypes.ERR_GET_CLASS_PARAML=301;//获取ClassParam失败 @@ -94,6 +94,10 @@ MessageTypes.ERR_GET_CLASS_PARAML=301;//获取ClassParam失败
94 MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN=500;//APE在sdk为初始化或未加入会议之前调用发送数据接口 94 MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN=500;//APE在sdk为初始化或未加入会议之前调用发送数据接口
95 MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG=501;//APE在接口调用时参数错误 95 MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG=501;//APE在接口调用时参数错误
96 96
  97 +//DOC
  98 +MessageTypes.ERR_DOC_DELETE_FAILED=600;//删除文档失败
  99 +MessageTypes.ERR_DOC_DELETE_FAILED_PARAM=601;//删除文档失败,参数错误
  100 +
97 MessageTypes.ERR_NETWORK=10000;//网络错误 101 MessageTypes.ERR_NETWORK=10000;//网络错误
98 MessageTypes.ERR_UNKNOWN=10001;//未知错误 102 MessageTypes.ERR_UNKNOWN=10001;//未知错误
99 103
@@ -101,7 +105,7 @@ MessageTypes.ERR_SOCKET_DISCONNECT=20000;//MCU断开连接,已经离开会议 @@ -101,7 +105,7 @@ MessageTypes.ERR_SOCKET_DISCONNECT=20000;//MCU断开连接,已经离开会议
101 105
102 //---------------错误消息 Error Reson 定义------------------------------------------------- 106 //---------------错误消息 Error Reson 定义-------------------------------------------------
103 MessageTypes.ErrorReson={}; 107 MessageTypes.ErrorReson={};
104 -MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_PAEAM]="初始化参数错误"; 108 +MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_PARAM]="初始化参数错误";
105 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_NETWORK]="初始化网络错误"; 109 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_NETWORK]="初始化网络错误";
106 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_PROTOCOL]="初始化协议错误"; 110 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_INIT_PROTOCOL]="初始化协议错误";
107 111
@@ -123,13 +127,18 @@ MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_PASSWORD_WRONG]="密码错误"; @@ -123,13 +127,18 @@ MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_PASSWORD_WRONG]="密码错误";
123 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_JOIN_CONFILICT]="已经在其它地方登陆"; 127 MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_JOIN_CONFILICT]="已经在其它地方登陆";
124 128
125 129
126 -MessageTypes.ErrorReson[MessageTypes.ERR_GET_CLASS_DETAIL=300]="获取classDetail失败"; 130 +MessageTypes.ErrorReson[MessageTypes.ERR_GET_CLASS_DETAIL]="获取classDetail失败";
127 MessageTypes.ErrorReson[MessageTypes.ERR_GET_CLASS_PARAML]="获取ClassParam失败"; 131 MessageTypes.ErrorReson[MessageTypes.ERR_GET_CLASS_PARAML]="获取ClassParam失败";
128 132
129 //APE 133 //APE
130 MessageTypes.ErrorReson[MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN]="APE在sdk为初始化或未加入会议之前调用发送数据接口"; 134 MessageTypes.ErrorReson[MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN]="APE在sdk为初始化或未加入会议之前调用发送数据接口";
131 MessageTypes.ErrorReson[MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG]="APE在接口调用时参数错误"; 135 MessageTypes.ErrorReson[MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG]="APE在接口调用时参数错误";
132 136
  137 +//DOC
  138 +MessageTypes.ErrorReson[MessageTypes.ERR_DOC_DELETE_FAILED]="删除文档失败";
  139 +MessageTypes.ErrorReson[MessageTypes.ERR_DOC_DELETE_FAILED_PARAM]="删除文档失败,参数错误";
  140 +
  141 +
133 MessageTypes.ErrorReson[MessageTypes.ERR_NETWORK]="网络错误"; 142 MessageTypes.ErrorReson[MessageTypes.ERR_NETWORK]="网络错误";
134 MessageTypes.ErrorReson[MessageTypes.ERR_UNKNOWN]="未知错误"; 143 MessageTypes.ErrorReson[MessageTypes.ERR_UNKNOWN]="未知错误";
135 144
@@ -285,11 +285,63 @@ class Sass extends Emiter { @@ -285,11 +285,63 @@ class Sass extends Emiter {
285 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_GET_CLASS_PARAML); 285 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_GET_CLASS_PARAML);
286 }); 286 });
287 } 287 }
  288 +
  289 + //删除文档
  290 + /*
  291 + 删除课堂中的文档,即删除课堂与文档的关联
  292 + /api/document/deleteRelation.do
  293 + 参数
  294 + docId 文档的唯一id
  295 + classId 课堂号
  296 + timestamp 时间戳
  297 + authId md5(docId+classId+timestamp)
  298 +
  299 + 返回 (application/json):
  300 + 0 成功, 1 验证信息错误
  301 +
  302 + */
  303 +
  304 + sassDeleteDocument(_param){
  305 + var timestamp=new Date().getTime();
  306 + var authId=MD5(_param.docId+""+_param.classId+""+timestamp);// docId+classId+timestamp的字符串,转成MD5
  307 + let url = `http://${confInfo.portal}/3m/api/document/deleteRelation.do?docId=${_param.docId}&classId=${confInfo.classId}&timestamp=${timestamp}&authId=${authId}`;
  308 + loger.log('sassDeleteDocument', url);
  309 +
  310 + fetch(url, {
  311 + timeout: 5000
  312 + })
  313 + .then(ret => {
  314 + if (ret.ok) {
  315 + return ret.json();
  316 + } else {
  317 + loger.error(`sassDeleteDocument-网络异常.状态码:${ret.status}`);
  318 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED);
  319 +
  320 + throw '';
  321 + }
  322 + })
  323 + .then(ret => {
  324 + if (ret.code === 0) {
  325 + loger.log('sassDeleteDocument 完成');
  326 + this._emit(Sass.DELETE_DOCUMENT_SUCCESS, _param);
  327 + } else {
  328 + loger.warn('sassDeleteDocument 失败.');
  329 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED);
  330 + }
  331 + })
  332 + .catch(err => {
  333 + loger.error(`sassDeleteDocument异常.状态码:${err}`);
  334 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_DOC_DELETE_FAILED);
  335 + });
  336 + }
  337 +
  338 +
288 } 339 }
289 340
290 Sass.prototype.SUCCESS = Sass.SUCCESS = 'Sass.success'; 341 Sass.prototype.SUCCESS = Sass.SUCCESS = 'Sass.success';
291 Sass.prototype.CLASS_INIT_SUCCESS = Sass.CLASS_INIT_SUCCESS = 'sass.class.init.success'; 342 Sass.prototype.CLASS_INIT_SUCCESS = Sass.CLASS_INIT_SUCCESS = 'sass.class.init.success';
292 Sass.prototype.CLASS_GET_CLASS_PARAM= Sass.CLASS_GET_CLASS_PARAM = 'class.getClassParam.message'; 343 Sass.prototype.CLASS_GET_CLASS_PARAM= Sass.CLASS_GET_CLASS_PARAM = 'class.getClassParam.message';
293 Sass.prototype.CLASS_GET_CLASS_DETAIL= Sass.CLASS_GET_CLASS_DETAIL = 'class.getClassDetail.message'; 344 Sass.prototype.CLASS_GET_CLASS_DETAIL= Sass.CLASS_GET_CLASS_DETAIL = 'class.getClassDetail.message';
  345 +Sass.prototype.DELETE_DOCUMENT_SUCCESS= Sass.DELETE_DOCUMENT_SUCCESS = 'class.deleteDocumentSuccess.message';//删除文档成功
294 export default new Sass; 346 export default new Sass;
295 347
@@ -307,7 +307,14 @@ class DocApe extends Ape { @@ -307,7 +307,14 @@ class DocApe extends Ape {
307 let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); 307 let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData);
308 this.docList[itemIdx] = itemDataInfo; 308 this.docList[itemIdx] = itemDataInfo;
309 loger.log('tableInsertHandler',itemDataInfo); 309 loger.log('tableInsertHandler',itemDataInfo);
310 - this._emit(MessageTypes.DOC_UPLOAD,itemDataInfo); 310 + //this._emit(MessageTypes.DOC_UPLOAD,itemDataInfo);
  311 +
  312 + if(itemDataInfo.visible=="true"||itemDataInfo.visible==true){
  313 + GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID
  314 + GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页
  315 + }
  316 +
  317 + this._emit(MessageTypes.DOC_UPDATE,itemDataInfo);//用添加和更新都统一DOC_UPDATE
311 } 318 }
312 319
313 tableDeleteHandler(object_id, tableDeleteData){ 320 tableDeleteHandler(object_id, tableDeleteData){
@@ -285,6 +285,7 @@ class WhiteBoardApe extends Ape { @@ -285,6 +285,7 @@ class WhiteBoardApe extends Ape {
285 "isFresh":false, 285 "isFresh":false,
286 "annotaionItems":annotaionItems 286 "annotaionItems":annotaionItems
287 } 287 }
  288 + loger.log("WHITEBOARD_ANNOTATION_UPDATE",updateObj.length);
288 this._emit(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE,updateObj); 289 this._emit(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE,updateObj);
289 } 290 }
290 //整体更新并且显示标注 291 //整体更新并且显示标注
@@ -294,7 +295,7 @@ class WhiteBoardApe extends Ape { @@ -294,7 +295,7 @@ class WhiteBoardApe extends Ape {
294 let item=this.annoInfos[key]; 295 let item=this.annoInfos[key];
295 if(item&&item.parentId==GlobalConfig.activeDocId&&item.curPageNo==GlobalConfig.activeDocCurPage){ 296 if(item&&item.parentId==GlobalConfig.activeDocId&&item.curPageNo==GlobalConfig.activeDocCurPage){
296 annotaionItems.push(item); 297 annotaionItems.push(item);
297 - loger.log("显示和文档对应的白板数据docUpdateHandler",item); 298 + loger.log("显示和文档对应的白板数据docUpdateHandler itemIdx:",item.itemIdx,"doc itemIdx:",GlobalConfig.activeDocId,"curPageNo:",GlobalConfig.activeDocCurPage);
298 }else{ 299 }else{
299 loger.log("不显示白板数据docUpdateHandler",item); 300 loger.log("不显示白板数据docUpdateHandler",item);
300 } 301 }
@@ -303,6 +304,7 @@ class WhiteBoardApe extends Ape { @@ -303,6 +304,7 @@ class WhiteBoardApe extends Ape {
303 "isFresh":true, 304 "isFresh":true,
304 "annotaionItems":annotaionItems 305 "annotaionItems":annotaionItems
305 } 306 }
  307 + loger.log("WHITEBOARD_ANNOTATION_UPDATE",updateObj.length);
306 this._emit(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE,updateObj); 308 this._emit(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE,updateObj);
307 } 309 }
308 310
@@ -364,7 +366,7 @@ class WhiteBoardApe extends Ape { @@ -364,7 +366,7 @@ class WhiteBoardApe extends Ape {
364 } 366 }
365 unPackPdu(owner, itemIdx,itemData){ 367 unPackPdu(owner, itemIdx,itemData){
366 try{ 368 try{
367 - console.log("白板收到数据===unPackPdu "); 369 + loger.log("白板收到数据===unPackPdu ");
368 let whiteBoardModelPdu= pdu['RCWhiteBoardDataModelPdu'].decode(itemData); 370 let whiteBoardModelPdu= pdu['RCWhiteBoardDataModelPdu'].decode(itemData);
369 //console.log(whiteBoardModelPdu); 371 //console.log(whiteBoardModelPdu);
370 //loger.log(whiteBoardModelPdu); 372 //loger.log(whiteBoardModelPdu);