Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
李勇
/
McuClient
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
李勇
2017-02-13 21:29:22 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c5134e34aaad224b84774be3632935e0d15dffae
c5134e34
1 parent
0075bb26
1.修改白板模块的对外接口,简化外部事件的监听
显示空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
122 行增加
和
149 行删除
dist/McuClient.js
src/EngineEntrance.js
src/MessageTypes.js
src/apes/Ape.js
src/apes/WhiteBoardApe.js
dist/McuClient.js
已删除
100644 → 0
查看文件 @
0075bb2
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
c5134e3
...
...
@@ -115,6 +115,7 @@ export default class MessageEntrance extends Emiter {
this
.
sendInsertAnnotaion
=
this
.
_sendInsertAnnotaion
;
this
.
sendDeleteAnnotaion
=
this
.
_sendDeleteAnnotaion
;
this
.
sendDeleteAllAnnotation
=
this
.
_sendDeleteAllAnnotation
;
this
.
sendGotoPrev
=
this
.
_sendGotoPrev
;
//DocApe
this
.
sendDocumentUpload
=
this
.
_sendDocumentUpload
;
//上传文档
...
...
@@ -475,6 +476,13 @@ export default class MessageEntrance extends Emiter {
_whiteboard_ape
.
sendDeleteAllAnnotation
(
_param
);
}
}
//返回上一步标注
_sendGotoPrev
(
_param
){
if
(
_whiteboard_ape
){
_whiteboard_ape
.
gotoPrev
(
_param
);
}
}
//DocApe
//上传文档
...
...
src/MessageTypes.js
查看文件 @
c5134e3
...
...
@@ -47,10 +47,11 @@ MessageTypes.DOC_UPDATE = 'document.update';//更新文档
MessageTypes
.
DOC_DELETE
=
'document.delete'
;
//删除文档
MessageTypes
.
DOC_ANNOTATION
=
'document.annotation'
;
//笔记
//笔记事件定义
//
白板
笔记事件定义
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
=
'whiteboard.annotation.update'
;
MessageTypes
.
WHITEBOARD_ANNOTAION_INSERT
=
'whiteboard.annotation.insert'
;
MessageTypes
.
WHITEBOARD_ANNOTAION_DELETE
=
'whiteboard.annotation.delete'
;
//MessageTypes.WHITEBOARD_ANNOTAION_INSERT = 'whiteboard.annotation.insert';
//MessageTypes.WHITEBOARD_ANNOTAION_DELETE = 'whiteboard.annotation.delete';
//MessageTypes.WHITEBOARD_ANNOTATION_CLEAR = 'whiteboard.annotation.clear';
//音频
...
...
src/apes/Ape.js
查看文件 @
c5134e3
...
...
@@ -160,7 +160,7 @@ export default class Ape extends Emiter {
let
tableInsertItemsLen
=
tableInsertItems
.
length
;
for
(
let
i
=
0
;
i
<
tableInsertItemsLen
;
++
i
)
{
let
insertItem
=
tableInsertItems
[
i
];
console
.
log
(
"insertItem"
,
insertItem
);
loger
.
log
(
"insertItem"
,
insertItem
);
this
.
tableInsertHandler
(
insertItem
.
owner
,
insertItem
.
itemIdx
,
insertItem
.
itemData
);
}
break
;
...
...
@@ -173,7 +173,7 @@ export default class Ape extends Emiter {
let
tableUpdateData
=
pdu
[
'RCRegistryTableUpdateItemPdu'
].
decode
(
user_data
);
let
tableUpdateItems
=
tableUpdateData
.
items
;
let
tableUpdateItemsLen
=
tableUpdateItems
.
length
;
console
.
log
(
"RCRegistryTableUpdateItemPdu "
+
tableUpdateItemsLen
);
loger
.
log
(
"RCRegistryTableUpdateItemPdu "
+
tableUpdateItemsLen
);
console
.
log
(
tableUpdateData
);
for
(
let
i
=
0
;
i
<
tableUpdateItemsLen
;
++
i
)
{
...
...
@@ -209,7 +209,6 @@ export default class Ape extends Emiter {
tableDeleteHandler
(
tableId
,
record
)
{
loger
.
warn
(
this
.
_session_name
+
' tableDelHandler 应有子类具体覆盖处理.'
);
}
onJoinChannelHandlerSuccess
(){
loger
.
warn
(
this
.
_session_name
+
' onJoinChannelHandlerSuccess 应有子类具体覆盖处理.'
);
}
...
...
src/apes/WhiteBoardApe.js
查看文件 @
c5134e3
...
...
@@ -40,7 +40,8 @@ class WhiteBoardApe extends Ape {
ApeConsts
.
WHITEBOARD_SESSION_TAG
);
// properties
this
.
annoInfos
=
{};
this
.
annoInfos
=
{};
//储存所有的标注数据
this
.
insertHistory
=
[];
//添加的白板记录,用于撤回操作
// 白板延迟
// this._apeDelayed = true;
...
...
@@ -56,27 +57,12 @@ class WhiteBoardApe extends Ape {
_joinSessionHandler
(
_data
)
{
loger
.
log
(
"RCPDU_SESSION_JOIN_RESPONSE"
);
this
.
insertHistory
=
[];
}
/////////////发送数据操作//////////////////////////////////////////////////////
// 添加标注,发送信息
sendInsetAnnotaion
(
_param
){
/* itemIdx=parseInt(Date.now()/1000);
let whiteBoardModelPdu =new pdu['RCWhiteBoardDataModel'];
whiteBoardModelPdu.id =itemIdx;
whiteBoardModelPdu.initiator =GlobalConfig.nodeId;
whiteBoardModelPdu.pointGroup =EngineUtils.arrayToJsonString([{"w":10,"h":20},{"w":10,"h":20},{"w":10,"h":20},{"w":10,"h":20}]);
whiteBoardModelPdu.type = 3;
*/
/* let whiteBoardModelPdu =new pdu['RCWhiteBoardDataModel'];
whiteBoardModelPdu.id =ApeConsts.WHITEBOARD_OBJ_TABLE_ID;
whiteBoardModelPdu.initiator =GlobalConfig.nodeId;
whiteBoardModelPdu.pointGroup =EngineUtils.arrayToJsonString([{"w":133,"h":20},{"w":1313,"h":20},{"w":313,"h":20},{"w":10,"h":20}]);
whiteBoardModelPdu.type = 3;
*/
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
)){
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
...
...
@@ -92,6 +78,9 @@ class WhiteBoardApe extends Ape {
}
console
.
log
(
whiteBoardModelPdu
);
//储存记录,用于返回上一步操作
this
.
insertHistory
.
push
(
whiteBoardModelPdu
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
...
...
@@ -122,6 +111,16 @@ class WhiteBoardApe extends Ape {
console
.
log
(
"添加白板数据=====itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//撤销上一步
gotoPrev
(){
loger
.
log
(
"白板返回上一步"
);
if
(
this
.
insertHistory
==
null
||
this
.
insertHistory
.
length
<
1
){
loger
.
warn
(
"无法继续上一步操作,已经没有可以撤销的数据"
);
return
;
}
console
.
log
(
this
.
insertHistory
);
this
.
sendDeleteAnnotaion
(
this
.
insertHistory
.
pop
());
}
//删除所有标注
sendDeleteAllAnnotation
(
_param
){
for
(
let
key
in
this
.
annoInfos
){
...
...
@@ -130,8 +129,13 @@ class WhiteBoardApe extends Ape {
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
//删除标注,发送信息
sendDeleteAnnotaion
(
_param
){
if
(
_param
==
null
){
loger
.
warn
(
"要删除的数据不存在"
);
return
;
}
//{"itemIdx":itemIdx}
let
tableDeleteItemPdu
=
new
pdu
[
'RCRegistryTableDeleteItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];
...
...
@@ -165,14 +169,6 @@ class WhiteBoardApe extends Ape {
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
/* let whiteBoardModelPdu =new pdu['RCWhiteBoardDataModel'];
whiteBoardModelPdu.id =ApeConsts.WHITEBOARD_OBJ_TABLE_ID;
whiteBoardModelPdu.initiator =GlobalConfig.nodeId;
whiteBoardModelPdu.pointGroup =EngineUtils.arrayToJsonString([{"w":133,"h":20},{"w":1313,"h":20},{"w":313,"h":20},{"w":10,"h":20}]);
whiteBoardModelPdu.type = 3;
*/
itemIdx
=
_param
.
itemIdx
;
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
//console.log(whiteBoardModelPdu);
...
...
@@ -216,6 +212,93 @@ class WhiteBoardApe extends Ape {
this
.
sendUniform
(
adapterPdu
,
true
);
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
/* whiteboardMsgComingHandler(_data) {
//flash RCConferenceSendDataRequestPdu
//loger.warn('whiteboardMsgComingHandler needs to be handled.');
//const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu);
//loger.log("whiteboardMsgComingHandler",recordInfo);
let receiveInfo = pdu['RCConferenceSendDataRequestPdu'].decode(_data);
loger.log("whiteboardMsgComingHandler",receiveInfo);
}*/
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableInsertHandler'
,
whiteBoardModel
);
if
(
whiteBoardModel
){
if
(
GlobalConfig
.
activeDocId
==
whiteBoardModel
.
parentId
&&
GlobalConfig
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
){
loger
.
log
(
'WHITEBOARD_ANNOTAION_INSERT 显示到界面上'
,
whiteBoardModel
);
//this._emit(MessageTypes.WHITEBOARD_ANNOTAION_INSERT,whiteBoardModel);
this
.
insertAandShowAnnotaion
(
whiteBoardModel
);
}
}
}
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableUpdateHandler'
,
whiteBoardModel
);
this
.
updateAandShowAnnotaion
();
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
// console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
){
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
){
if
(
this
.
annoInfos
[
itemIdxs
[
i
]]){
loger
.
log
(
"删除白板数据:"
,
itemIdxs
[
i
]);
//this._emit(MessageTypes.WHITEBOARD_ANNOTAION_DELETE,{ "itemIdx":itemIdxs[i]});
delete
this
.
annoInfos
[
itemIdxs
[
i
]];
}
}
}
this
.
updateAandShowAnnotaion
();
}
//文档更新,白板也要更新
docUpdateHandler
(
_data
){
loger
.
log
(
"白板收到文档更新的消息docUpdateHandler"
,
_data
);
this
.
updateAandShowAnnotaion
();
}
//删除白板数据
docDeleteHandler
(
_parentId
){
loger
.
log
(
"白板收到文档删除的消息docDeleteHandler"
,
_parentId
);
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_parentId
){
loger
.
log
(
"文档删除,白板数据也删除,itemIdx:"
+
key
,
"_parentId:"
,
_parentId
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
}
//增量添加标注
insertAandShowAnnotaion
(
_item
){
let
annotaionItems
=
[
_item
];
var
updateObj
=
{
"isFresh"
:
false
,
"annotaionItems"
:
annotaionItems
}
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
//整体更新并且显示标注
updateAandShowAnnotaion
(){
let
annotaionItems
=
[];
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
annotaionItems
.
push
(
item
);
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler"
,
item
);
}
else
{
loger
.
log
(
"不显示白板数据docUpdateHandler"
,
item
);
}
}
var
updateObj
=
{
"isFresh"
:
true
,
"annotaionItems"
:
annotaionItems
}
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
///////白板数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
){
/* required uint32 type= 1;//白板类型
...
...
@@ -288,124 +371,6 @@ class WhiteBoardApe extends Ape {
return
null
;
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
/* whiteboardMsgComingHandler(_data) {
//flash RCConferenceSendDataRequestPdu
//loger.warn('whiteboardMsgComingHandler needs to be handled.');
//const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu);
//loger.log("whiteboardMsgComingHandler",recordInfo);
let receiveInfo = pdu['RCConferenceSendDataRequestPdu'].decode(_data);
loger.log("whiteboardMsgComingHandler",receiveInfo);
}*/
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
/* try{
console.log("白板收到数据===tableInsertHandler ");
let whiteBoardModelPdu= pdu['RCWhiteBoardDataModel'].decode(itemData);
this.annoInfos[itemIdx] = itemData;
console.log(whiteBoardModelPdu);
}catch (err){
console.log("tableInsertHandler Pdu解析错误,itemIdx="+itemIdx+" err:"+err.message);
}*/
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableInsertHandler'
,
whiteBoardModel
);
if
(
whiteBoardModel
){
if
(
GlobalConfig
.
activeDocId
==
whiteBoardModel
.
parentId
&&
GlobalConfig
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
){
loger
.
log
(
'WHITEBOARD_ANNOTAION_INSERT 显示到界面上'
,
whiteBoardModel
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTAION_INSERT
,
whiteBoardModel
);
}
}
}
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableUpdateHandler'
,
whiteBoardModel
);
if
(
whiteBoardModel
){
if
(
GlobalConfig
.
activeDocId
==
whiteBoardModel
.
parentId
&&
GlobalConfig
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
){
loger
.
log
(
'WHITEBOARD_ANNOTATION_UPDATE 显示到界面上'
,
whiteBoardModel
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
whiteBoardModel
);
}
}
/* try{
console.log("白板收到数据===tableUpdateHandler ");
let whiteBoardModelPdu= pdu['RCWhiteBoardDataModel'].decode(itemData);
this.annoInfos[itemIdx] = itemData;
console.log(whiteBoardModelPdu);
loger.log(whiteBoardModelPdu)
}catch (err){
console.log("tableUpdateHandler Pdu解析错误,itemIdx="+itemIdx+" err:"+err.message);
}*/
/*const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(recordData);
console.log("recordInfo");
loger.log(recordInfo);
// 目前只处理 文档标注
if (recordInfo.type == ApeConsts.WBA_DOC_ANNOTATION) {
const uncompressedBytes = new Zlib.Inflate(recordInfo.action.compact().view).decompress();
const annoInfo = {
id: recordId,
svg: UTF8.getStringFromBytes(uncompressedBytes)
};
loger.log(annoInfo);
this.annoInfos[recordId] = annoInfo;
this._emit(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE, annoInfo);
} else {
loger.log('白板动作忽略,类型:', ApeConsts(recordInfo.type));
}*/
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
// console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
){
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
){
if
(
this
.
annoInfos
[
itemIdxs
[
i
]]){
loger
.
log
(
"删除白板数据:"
,
itemIdxs
[
i
],
"当前剩余的白板数据"
);
console
.
log
(
this
.
annoInfos
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTAION_DELETE
,{
"itemIdx"
:
itemIdxs
[
i
]});
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTAION_DELETE
,{
"itemIdx"
:
itemIdxs
[
i
]});
delete
this
.
annoInfos
[
itemIdxs
[
i
]];
}
}
}
}
//文档更新,白板也要更新
docUpdateHandler
(
_data
){
loger
.
log
(
"白板收到文档更新的消息docUpdateHandler"
,
_data
);
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler"
,
item
);
}
else
{
loger
.
log
(
"不显示白板数据docUpdateHandler"
,
item
);
}
}
/* let docItem=_data;
for (let key in this.annoInfos){
let item=this.annoInfos[key];
if(item&&docItem.visible==true&&item.parentId==docItem.itemIdx&&item.curPageNo==docItem.curPageNo){
loger.log("显示和文档对应的白板数据docUpdateHandler",item);
}else{
loger.log("不显示白板数据docUpdateHandler",item);
}
}*/
}
//删除白板数据
docDeleteHandler
(
_parentId
){
loger
.
log
(
"白板收到文档删除的消息docDeleteHandler"
,
_parentId
);
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_parentId
){
loger
.
log
(
"文档删除,白板数据也删除,itemIdx:"
+
key
,
"_parentId:"
,
_parentId
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
}
}
export
default
WhiteBoardApe
;
...
...
请
注册
或
登录
后发表评论