李勇

v.1.8.22.20170411 开始录制的时候,文档模块和白板标注模块增加对当前显示的数据进行录制,解决录制中缺少内容的问题

此 diff 太大无法显示。
@@ -26,7 +26,7 @@ import ArrayBufferUtil from 'libs/ArrayBufferUtil'; @@ -26,7 +26,7 @@ import ArrayBufferUtil from 'libs/ArrayBufferUtil';
26 import UTF8 from 'utf-8'; 26 import UTF8 from 'utf-8';
27 27
28 let loger = Loger.getLoger('MessageEntrance'); 28 let loger = Loger.getLoger('MessageEntrance');
29 -let _sdkInfo = {"version": "v.1.8.19.20170411", "author": "www.3mang.com"}; 29 +let _sdkInfo = {"version": "v.1.8.22.20170411", "author": "www.3mang.com"};
30 30
31 //APE 31 //APE
32 let _sass; 32 let _sass;
@@ -251,6 +251,9 @@ export default class MessageEntrance extends Emiter { @@ -251,6 +251,9 @@ export default class MessageEntrance extends Emiter {
251 if(_doc_ape){ 251 if(_doc_ape){
252 _doc_ape.updaterRecordStatus(); 252 _doc_ape.updaterRecordStatus();
253 } 253 }
  254 + if(_whiteboard_ape){
  255 + _whiteboard_ape.updaterRecordStatus();
  256 + }
254 } 257 }
255 258
256 //有人员离开 259 //有人员离开
@@ -220,6 +220,14 @@ class DocApe extends Ape { @@ -220,6 +220,14 @@ class DocApe extends Ape {
220 }); 220 });
221 } 221 }
222 } 222 }
  223 + //清除当前文档模块的数据
  224 + clearData(){
  225 + loger.log("clearData->")
  226 + this.docList={};
  227 + GlobalConfig.activeDocId=0;
  228 + GlobalConfig.activeDocCurPage=1;
  229 +
  230 + }
223 //切换文档 231 //切换文档
224 documentSwitchDoc(paramInfo) { 232 documentSwitchDoc(paramInfo) {
225 loger.log('切换文档->', paramInfo); 233 loger.log('切换文档->', paramInfo);
@@ -366,14 +374,6 @@ class DocApe extends Ape { @@ -366,14 +374,6 @@ class DocApe extends Ape {
366 this.sendUniform(adapterPdu, true); 374 this.sendUniform(adapterPdu, true);
367 } 375 }
368 376
369 - //清除当前文档模块的数据  
370 - clearData(){  
371 - loger.log("clearData->")  
372 - this.docList={};  
373 - GlobalConfig.activeDocId=0;  
374 - GlobalConfig.activeDocCurPage=1;  
375 -  
376 - }  
377 /////收到消息处理///////////////////////////////////////////////////////////////////////////////// 377 /////收到消息处理/////////////////////////////////////////////////////////////////////////////////
378 tableInsertHandler(owner, itemIdx, itemData) { 378 tableInsertHandler(owner, itemIdx, itemData) {
379 /* let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData); 379 /* let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData);
@@ -546,29 +546,6 @@ class DocApe extends Ape { @@ -546,29 +546,6 @@ class DocApe extends Ape {
546 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG); 546 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
547 return null; 547 return null;
548 } 548 }
549 -  
550 - /* message RCDocSendDataModelPdu {  
551 - required uint32 item_idx=1;//唯一标识  
552 - required uint32 owner=2;  
553 - optional uint32 from=3;  
554 - optional uint32 cur_page_no=4;  
555 - optional uint32 page_num =5;  
556 - optional string file_type=6;  
557 - optional string creat_user_id=7;//创建文档userid  
558 - optional string relative_url=8;//文档相对地址  
559 - optional string url =9;//文档地址  
560 - optional uint32 cur_V=10;  
561 - optional uint32 cur_H=11;  
562 - optional uint32 scale=12;  
563 - optional bool visible=13;  
564 - optional uint32 action=14;//0,无操作, 1翻页 /缩放/滚动、2.显示/隐藏  
565 - optional string doc_id=15;//文档在服务器数据库中的唯一id  
566 - optional string file_name=16;//文档的名字  
567 - optional string dynamic_TS=17;//"dynamicTransferStatic": "0"  
568 - optional string md5=18;//md5  
569 - optional uint32 show_type=19;//显示模式  
570 - }*/  
571 -  
572 //判断type类型,根据type设置不同的参数 549 //判断type类型,根据type设置不同的参数
573 let docModelPdu = new pdu['RCDocSendDataModelPdu']; 550 let docModelPdu = new pdu['RCDocSendDataModelPdu'];
574 docModelPdu.itemIdx = _itemIdx; 551 docModelPdu.itemIdx = _itemIdx;
@@ -64,6 +64,25 @@ class WhiteBoardApe extends Ape { @@ -64,6 +64,25 @@ class WhiteBoardApe extends Ape {
64 this.annoInfos = {};//储存所有的标注数据 64 this.annoInfos = {};//储存所有的标注数据
65 this.insertHistory = [];//添加的白板记录,用于撤回操作 65 this.insertHistory = [];//添加的白板记录,用于撤回操作
66 } 66 }
  67 + //更新文档模块的录制信息,每次开启录制的时候需要把当前文档的信息更新一次
  68 + updaterRecordStatus(_param){
  69 + if(GlobalConfig.isHost&&!GlobalConfig.isRecordPlayBack){
  70 + let curPageAnnos={};
  71 + for (let key in this.annoInfos) {
  72 + let item = this.annoInfos[key];
  73 + if (item && item.parentId == GlobalConfig.activeDocId && item.curPageNo == GlobalConfig.activeDocCurPage) {
  74 + curPageAnnos[key]=item;
  75 + }
  76 + }
  77 + if(Object.keys(curPageAnnos).length>0){
  78 + loger.log("开启录制成功->更新当前的标注数据->docId:", GlobalConfig.activeDocId, 'page:',GlobalConfig.activeDocCurPage);
  79 + this.sendUpdaterAnnotaion({"itemIdxArr":curPageAnnos});
  80 + }else {
  81 + loger.log("开启录制成功->当前没有标注数据需要更新->docId:", GlobalConfig.activeDocId, 'page:',GlobalConfig.activeDocCurPage);
  82 + }
  83 + }
  84 + }
  85 +
67 /////////////发送数据操作////////////////////////////////////////////////////// 86 /////////////发送数据操作//////////////////////////////////////////////////////
68 // 添加标注,发送信息 87 // 添加标注,发送信息
69 sendInsetAnnotaion(_param) { 88 sendInsetAnnotaion(_param) {
@@ -215,51 +234,51 @@ class WhiteBoardApe extends Ape { @@ -215,51 +234,51 @@ class WhiteBoardApe extends Ape {
215 234
216 //更新标注 235 //更新标注
217 sendUpdaterAnnotaion(_param) { 236 sendUpdaterAnnotaion(_param) {
218 - if (_param == null || EngineUtils.isEmptyObject(_param)) {  
219 - loger.log('sendUpdaterAnnotaion失败,参数错误'); 237 + if (_param == null ||_param.itemIdxArr==null) {
  238 + loger.log('更新标注数据->失败->参数错误');
220 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG); 239 this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
221 return; 240 return;
222 } 241 }
223 - itemIdx = _param.itemIdx;  
224 - let whiteBoardModelPdu = this.packPdu(_param, itemIdx);  
225 -  
226 - if (whiteBoardModelPdu == null) {  
227 - loger.log('sendInsetAnnotaion失败,参数错误');  
228 - this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);  
229 - return;  
230 - }  
231 -  
232 - let tableItemPdu = new pdu['RCRegistryTableItemPdu'];  
233 - tableItemPdu.itemIdx = itemIdx;  
234 - tableItemPdu.owner = 0;//收到flash的是这个值,不清楚先写固定  
235 - tableItemPdu.registerObjId = ApeConsts.WHITEBOARD_OBJ_TABLE_ID;  
236 - tableItemPdu.itemData = whiteBoardModelPdu.toArrayBuffer();  
237 -  
238 -  
239 - //updater  
240 - let whiteBoardUpdateItem = new pdu['RCRegistryTableUpdateItemPdu'];  
241 - //optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];  
242 - //repeated RCRegistryTableItemPdu items = 2;  
243 - whiteBoardUpdateItem.type = pdu.RCPDU_REG_TABLE_UPDATE_PDU;//  
244 - whiteBoardUpdateItem.items.push(tableItemPdu);  
245 -  
246 -  
247 - let updateObjPdu = new pdu['RCRegistryUpdateObjPdu'];  
248 - updateObjPdu.objId = ApeConsts.WHITEBOARD_OBJ_TABLE_ID;  
249 - updateObjPdu.subType = whiteBoardUpdateItem.type;  
250 - updateObjPdu.userData = whiteBoardUpdateItem.toArrayBuffer();  
251 -  
252 - //同步  
253 - let adapterItemPdu = new pdu['RCAdapterItemPdu'];  
254 - adapterItemPdu.type = pdu.RCPDU_REG_UPDATE_OBJ;  
255 - adapterItemPdu.itemData = updateObjPdu.toArrayBuffer();  
256 -  
257 let adapterPdu = new pdu['RCAdapterPdu']; 242 let adapterPdu = new pdu['RCAdapterPdu'];
258 adapterPdu.type = pdu.RCPDU_REG_ADAPTER; 243 adapterPdu.type = pdu.RCPDU_REG_ADAPTER;
259 - adapterPdu.item.push(adapterItemPdu); 244 + for (let key in _param.itemIdxArr) {
  245 + let itemIdx =parseInt(key);
  246 + let item= _param.itemIdxArr[key];
  247 + let whiteBoardModelPdu = this.packPdu(item, itemIdx);
  248 + if (whiteBoardModelPdu == null) {
  249 + loger.log('更新标注数据->失败->数据无效');
  250 + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
  251 + continue;
  252 + }
  253 + let tableItemPdu = new pdu['RCRegistryTableItemPdu'];
  254 + tableItemPdu.itemIdx = itemIdx;
  255 + tableItemPdu.owner = 0;//收到flash的是这个值,不清楚先写固定
  256 + tableItemPdu.registerObjId = ApeConsts.WHITEBOARD_OBJ_TABLE_ID;
  257 + tableItemPdu.itemData = whiteBoardModelPdu.toArrayBuffer();
260 258
261 - loger.log("白板发送更新数据===============22");  
262 - this.sendUniform(adapterPdu, true); 259 + //updater
  260 + let whiteBoardUpdateItem = new pdu['RCRegistryTableUpdateItemPdu'];
  261 + whiteBoardUpdateItem.type = pdu.RCPDU_REG_TABLE_UPDATE_PDU;//
  262 + whiteBoardUpdateItem.items.push(tableItemPdu);
  263 +
  264 + let updateObjPdu = new pdu['RCRegistryUpdateObjPdu'];
  265 + updateObjPdu.objId = ApeConsts.WHITEBOARD_OBJ_TABLE_ID;
  266 + updateObjPdu.subType = whiteBoardUpdateItem.type;
  267 + updateObjPdu.userData = whiteBoardUpdateItem.toArrayBuffer();
  268 +
  269 + //同步
  270 + let adapterItemPdu = new pdu['RCAdapterItemPdu'];
  271 + adapterItemPdu.type = pdu.RCPDU_REG_UPDATE_OBJ;
  272 + adapterItemPdu.itemData = updateObjPdu.toArrayBuffer();
  273 + adapterPdu.item.push(adapterItemPdu);
  274 + }
  275 + let len=adapterPdu.item.length
  276 + if(len>0){
  277 + loger.log("更新标注数据->发送数量->",adapterPdu.item.length);
  278 + this.sendUniform(adapterPdu, true);
  279 + }else {
  280 + loger.log("更新标注数据->没有可更新的数据");
  281 + }
263 } 282 }
264 283
265 /////收到消息处理///////////////////////////////////////////////////////////////////////////////// 284 /////收到消息处理/////////////////////////////////////////////////////////////////////////////////
@@ -287,7 +306,7 @@ class WhiteBoardApe extends Ape { @@ -287,7 +306,7 @@ class WhiteBoardApe extends Ape {
287 306
288 tableUpdateApeHandler(_tableUpdateItems,_seekTime){ 307 tableUpdateApeHandler(_tableUpdateItems,_seekTime){
289 let tableUpdateItemsLen = _tableUpdateItems.length; 308 let tableUpdateItemsLen = _tableUpdateItems.length;
290 - loger.log('tableUpdateApeHandler',"activeDocId->",GlobalConfig.activeDocId ,"tableUpdateItemsLen->", tableUpdateItemsLen); 309 + loger.log('白板标注更新->',"activeDocId->",GlobalConfig.activeDocId ,"数量->", tableUpdateItemsLen);
291 for (let i = 0; i < tableUpdateItemsLen; ++i) { 310 for (let i = 0; i < tableUpdateItemsLen; ++i) {
292 let tableItem = _tableUpdateItems[i]; 311 let tableItem = _tableUpdateItems[i];
293 let whiteBoardModel = this.unPackPdu(tableItem.owner, tableItem.itemIdx, tableItem.itemData); 312 let whiteBoardModel = this.unPackPdu(tableItem.owner, tableItem.itemIdx, tableItem.itemData);
@@ -297,7 +316,7 @@ class WhiteBoardApe extends Ape { @@ -297,7 +316,7 @@ class WhiteBoardApe extends Ape {
297 316
298 tableDeleteHandler(object_id, tableDeleteData) { 317 tableDeleteHandler(object_id, tableDeleteData) {
299 // console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649 318 // console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649
300 - loger.log('tableDeleteHandler', object_id, tableDeleteData);//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}] 319 + loger.log('删除白板数据->', object_id, tableDeleteData);//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
301 if (tableDeleteData && tableDeleteData.itemIdx) { 320 if (tableDeleteData && tableDeleteData.itemIdx) {
302 let len = tableDeleteData.itemIdx.length; 321 let len = tableDeleteData.itemIdx.length;
303 let itemIdxs = tableDeleteData.itemIdx; 322 let itemIdxs = tableDeleteData.itemIdx;
@@ -313,7 +332,7 @@ class WhiteBoardApe extends Ape { @@ -313,7 +332,7 @@ class WhiteBoardApe extends Ape {
313 332
314 //文档更新,白板也要更新 333 //文档更新,白板也要更新
315 docUpdateHandler(_data) { 334 docUpdateHandler(_data) {
316 - loger.log("白板收到文档更新的消息docUpdateHandler"); 335 + loger.log("白板收到文档更新的消息");
317 //loger.log(_data); 336 //loger.log(_data);
318 337
319 //如果切换了文档或翻页,清除之前的添加步骤记录 338 //如果切换了文档或翻页,清除之前的添加步骤记录
@@ -325,11 +344,11 @@ class WhiteBoardApe extends Ape { @@ -325,11 +344,11 @@ class WhiteBoardApe extends Ape {
325 344
326 //删除白板数据 345 //删除白板数据
327 docDeleteHandler(_parentId) { 346 docDeleteHandler(_parentId) {
328 - loger.log("白板收到文档删除的消息docDeleteHandler", _parentId); 347 + loger.log("白板收到文档删除的消息->", _parentId);
329 for (let key in this.annoInfos) { 348 for (let key in this.annoInfos) {
330 let item = this.annoInfos[key]; 349 let item = this.annoInfos[key];
331 if (item && item.parentId == _parentId) { 350 if (item && item.parentId == _parentId) {
332 - loger.log("文档删除白板数据也删除,itemIdx:" + key, "_parentId:", _parentId); 351 + loger.log("文档删除->白板数据也删除,itemIdx:" + key, "_parentId:", _parentId);
333 this.sendDeleteAnnotaion({"itemIdx": key}); 352 this.sendDeleteAnnotaion({"itemIdx": key});
334 } 353 }
335 } 354 }
@@ -418,14 +437,14 @@ class WhiteBoardApe extends Ape { @@ -418,14 +437,14 @@ class WhiteBoardApe extends Ape {
418 437
419 unPackPdu(owner, itemIdx, itemData) { 438 unPackPdu(owner, itemIdx, itemData) {
420 try { 439 try {
421 - loger.log("白板收到数据===unPackPdu "); 440 + loger.log("白板标注数据->unPackPdu");
422 let whiteBoardModelPdu = pdu['RCWhiteBoardDataModelPdu'].decode(itemData); 441 let whiteBoardModelPdu = pdu['RCWhiteBoardDataModelPdu'].decode(itemData);
423 let _pointGroup = EngineUtils.arrayFromJsonString(whiteBoardModelPdu.pointGroup); 442 let _pointGroup = EngineUtils.arrayFromJsonString(whiteBoardModelPdu.pointGroup);
424 whiteBoardModelPdu.pointGroup = _pointGroup; 443 whiteBoardModelPdu.pointGroup = _pointGroup;
425 this.annoInfos[itemIdx] = whiteBoardModelPdu; 444 this.annoInfos[itemIdx] = whiteBoardModelPdu;
426 return whiteBoardModelPdu; 445 return whiteBoardModelPdu;
427 } catch (err) { 446 } catch (err) {
428 - loger.log("unPackPdu Pdu解析错误,itemIdx=" + itemIdx + " err:" + err.message); 447 + loger.log("白板标注数据->unPackPdu->Pdu解析错误,itemIdx=" + itemIdx + " err:" + err.message);
429 } 448 }
430 return null; 449 return null;
431 } 450 }