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-08 20:33:49 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6740de7d609c3b35cc3aa0378aa1fcb1cde2afb3
6740de7d
1 parent
f69cfbf1
1.修改文档pdu数据结构,测试文档对外接口
2.白板模块消息去掉3秒延迟
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
198 行增加
和
67 行删除
src/EngineEntrance.js
src/apes/Ape.js
src/apes/ConferApe.js
src/apes/DocApe.js
src/apes/WhiteBoardApe.js
src/pdus/pro.js
src/EngineEntrance.js
查看文件 @
6740de7
...
...
@@ -116,6 +116,7 @@ export default class MessageEntrance extends Emiter {
this
.
sendDocumentUpload
=
this
.
_sendDocumentUpload
;
//上传文档
this
.
sendDocumentSwitch
=
this
.
_sendDocumentSwitch
;
//切换文档
this
.
sendDocumentDelete
=
this
.
_sendDocumentDelete
;
//删除文档
this
.
sendDocumentDeleteAll
=
this
.
_documentDeleteAll
;
//删除所有文档
this
.
sendDocumentCommand
=
this
.
_sendDocumentCommand
;
//操作文档(翻页、缩放、滚动...)
//debug
...
...
@@ -371,6 +372,13 @@ export default class MessageEntrance extends Emiter {
_doc_ape
.
documentDelete
(
_param
);
}
}
//删除所有文档
_documentDeleteAll
(
_param
){
if
(
_doc_ape
){
_doc_ape
.
documentDeleteAll
(
_param
);
}
}
//操作文档(翻页、缩放、滚动...)
_sendDocumentCommand
(
_param
){
if
(
_doc_ape
){
...
...
src/apes/Ape.js
查看文件 @
6740de7
...
...
@@ -62,7 +62,7 @@ export default class Ape extends Emiter {
// 消息处理
_pduMessageHandler
(
regBuffer
)
{
console
.
log
(
"RCPDU_REG_ADAPTER==========================================
"
);
console
.
log
(
"RCPDU_REG_ADAPTER==========================================
this._apeDelayed"
,
this
.
_apeDelayed
,
this
.
_confInfo
[
'mcuDelay'
]
);
if
(
this
.
_apeDelayed
)
{
// this._apeDelayedMsgs.push(regBuffer);
// this._apeDelayedStart();
...
...
@@ -98,7 +98,7 @@ export default class Ape extends Emiter {
let
regPdu
=
pdu
[
'RCAdapterPdu'
].
decode
(
regBuffer
);
let
regItems
=
regPdu
.
item
;
let
regItemSize
=
regItems
.
length
;
loger
.
log
(
this
.
_session_name
+
'数据同步消息'
);
//
loger.log(this._session_name + '数据同步消息');
loger
.
log
(
this
.
_session_name
+
'数据同步消息.同步条数'
,
regItemSize
);
//console.log(regPdu);
...
...
@@ -124,7 +124,7 @@ export default class Ape extends Emiter {
let
object_id
=
regUpdatedItem
.
objId
;
let
user_data
=
regUpdatedItem
.
userData
;
loger
.
log
(
'REG OBJECT EVENT ->'
,
pdu
.
id2type
(
sub_type
)
,
regUpdatedItem
);
loger
.
log
(
'REG OBJECT EVENT ->'
,
pdu
.
id2type
(
sub_type
));
switch
(
sub_type
)
{
case
pdu
.
RCPDU_REG_ROSTER_INSERT_PDU
:
let
rosterInsertData
=
pdu
[
'RCRegstryRosterInsertItemPdu'
].
decode
(
user_data
);
...
...
src/apes/ConferApe.js
查看文件 @
6740de7
...
...
@@ -33,10 +33,18 @@ class ConferApe extends Ape {
);
// Attribures
this
.
hostNodeId
=
-
1
;
this
.
hostUserId
=
''
;
this
.
rosters
=
{};
this
.
activeDocId
=
''
;
this
.
hostNodeId
=
-
1
;
//主持人的nodeId
// 用户的身份,5种类型:
// host(主持人/老师)
// presenter(主讲人)
// assistant(助教)
// normal(普通角色/学生)
// record(暂时没用.
// 默认值: normal
this
.
hostUserId
=
''
;
//主持人的 第三方userId
this
.
rosters
=
{};
//用户列表
this
.
activeDocId
=
0
;
//当前激活的文档ID
this
.
activeDocCurPage
=
1
;
//当前激活的文档的当前页
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
...
...
@@ -136,7 +144,7 @@ class ConferApe extends Ape {
const
uncompressedBytes
=
new
Zlib
.
Inflate
(
tabUpdatePdu
.
action
.
compact
().
view
).
decompress
();
let
tabInfo
=
UTF8
.
getStringFromBytes
(
uncompressedBytes
);
let
tabTypeMatches
=
tabInfo
.
match
(
/<TabType>
(
.+
)
<
\/
TabType>/
);
loger
.
log
(
"更新列表数据 tableUpdateHandler"
,
tabInfo
);
loger
.
log
(
"更新列表数据 tableUpdateHandler"
,
"owner:"
+
owner
,
"itemIdx:"
+
itemIdx
,
"tabInfo:"
,
tabInfo
);
if
(
tabTypeMatches
.
length
>
1
&&
tabTypeMatches
[
1
]
==
'show.docsharing'
)
{
if
(
tabInfo
.
match
(
/<visible>
(
.+
)
<
\/
visible>/
)[
1
]
==
'true'
)
{
this
.
activeDocId
=
tabInfo
.
match
(
/<TabID>
(
.+
)
<
\/
TabID>/
)[
1
];
...
...
src/apes/DocApe.js
查看文件 @
6740de7
...
...
@@ -30,12 +30,13 @@ class DocApe extends Ape {
ApeConsts
.
DOCSHARING_SESSION_NAME
,
ApeConsts
.
DOCSHARING_SESSION_TAG
);
this
.
docList
=
{};
this
.
docList
=
{};
//记录文档的数组this.docList[itemIdx]=itemIdx的数据
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
this
.
registerObj
(
pdu
.
RCPDU_REG_REGISTER_TABLE
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID_H5
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_NAME_H5
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_TAG_H5
,
0
,
new
ArrayBuffer
);
this
.
registerObj
(
pdu
.
RCPDU_REG_REGISTER_TABLE
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_NAME
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_TAG
,
0
,
new
ArrayBuffer
);
//this.registerObj(pdu.RCPDU_REG_REGISTER_TABLE, ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5, ApeConsts.DOCSHARING_OBJ_TABLE_NAME_H5, ApeConsts.DOCSHARING_OBJ_TABLE_TAG_H5, 0, new ArrayBuffer);
// 延迟
this
.
_apeDelayed
=
true
;
...
...
@@ -56,11 +57,11 @@ class DocApe extends Ape {
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
console
.
log
(
docDataModelPdu
);
//
console.log(docDataModelPdu);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID_H5
;
tableItemPdu
.
registerObjId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID
_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
...
...
@@ -72,7 +73,7 @@ class DocApe extends Ape {
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID_H5
;
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID
_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
...
...
@@ -85,17 +86,89 @@ class DocApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"文档upload tableItemPdu.itemIdx="
+
tableItemPdu
.
itemIdx
);
loger
.
log
(
"文档upload tableItemPdu.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
updaterDoc
(
_docDataModel
,
_itemIdx
){
loger
.
log
(
"文档===updaterDoc "
,
_itemIdx
);
//验证坐标点集合数组是否合法
if
(
_docDataModel
==
null
||
_itemIdx
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
loger
.
log
(
"文档===updaterDoc "
,
_docDataModel
);
let
docDataModelPdu
=
this
.
packPdu
(
_docDataModel
,
_itemIdx
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
_itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableUpdateItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
//repeated RCRegistryTableItemPdu items = 2;
tableInsertItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_UPDATE_PDU
;
//
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"发送更新文档.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//切换文档
documentSwitch
(
paramInfo
){
console
.
log
(
this
.
docList
);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
){
loger
.
log
(
'documentSwitch失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新数据的字段
docDataModel
.
visible
=!
docDataModel
.
visible
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//操作文档(翻页、缩放、滚动...)
documentCommand
(
paramInfo
){
console
.
log
(
this
.
docList
);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
//console.log(docDataModelPdu);
//console.log(docDataModel);
if
(
docDataModel
==
null
){
loger
.
log
(
'documentCommand失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新数据的字段
docDataModel
.
curPageNo
=
docDataModel
.
curPageNo
+
1
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//删除所有文档
documentDeleteAll
(
_param
){
let
len
=
0
;
for
(
let
key
in
this
.
docList
){
//console.log("key:"+key);
loger
.
log
(
"删除文档数据,itemIdx:"
+
key
);
this
.
documentDelete
({
"itemIdx"
:
key
});
}
}
//删除文档
...
...
@@ -108,7 +181,7 @@ class DocApe extends Ape {
tableDeleteItemPdu
.
itemIdx
=
parseInt
(
paramInfo
.
itemIdx
);
//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID_H5
;
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID
_H5;
updateObjPdu
.
subType
=
tableDeleteItemPdu
.
type
;
updateObjPdu
.
userData
=
tableDeleteItemPdu
.
toArrayBuffer
();
...
...
@@ -121,63 +194,73 @@ class DocApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"文档发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
loger
.
log
(
"文档发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
///////白板数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
){
loger
.
log
(
"文档===packPdu "
);
//验证坐标点集合数组是否合法
if
(
_param
.
pointGroup
==
null
||
_param
.
pointGroup
.
length
<
1
){
if
(
_param
==
null
||
_itemIdx
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
/* required uint32 item_idx=1;//唯一标识
required uint32 owner=2;
optional uint32 from=3;
optional uint32 cur_page_no=4;
optional uint32 page_num =5;
required string filetype=6;
required string doc_type=7;
required string relative_url=8;//文档相对地址
optional string url =9;//文档地址
optional uint32 cur_V=10;
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
optional string id=15;//文档在服务器数据库中的唯一id*/
/* message RCDocSendDataModelPdu {
required uint32 item_idx=1;//唯一标识
required uint32 owner=2;
optional uint32 from=3;
optional uint32 cur_page_no=4;
optional uint32 page_num =5;
optional string file_type=6;
optional string doc_type=7;
optional string relative_url=8;//文档相对地址
optional string url =9;//文档地址
optional uint32 cur_V=10;
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
optional string db_id=15;//文档在服务器数据库中的唯一id
}*/
//判断type类型,根据type设置不同的参数
let
docModelPdu
=
new
pdu
[
'RCDocSendDataModel'
];
let
docModelPdu
=
new
pdu
[
'RCDocSendDataModel
Pdu
'
];
docModelPdu
.
itemIdx
=
_itemIdx
;
docModelPdu
.
owner
=
GlobalConfig
.
nodeId
;
docModelPdu
.
from
=
GlobalConfig
.
nodeId
;
docModelPdu
.
curPageNo
=
1
;
docModelPdu
.
pageNum
=
10
;
docModelPdu
.
curPageNo
=
_param
.
curPageNo
||
1
;
docModelPdu
.
pageNum
=
_param
.
pageNum
||
1
;
docModelPdu
.
fileType
=
_param
.
fileType
||
""
;
docModelPdu
.
docType
=
"pdf2swf"
;
docModelPdu
.
url
=
"http://101.200.150.192/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg"
;
docModelPdu
.
relativeUrl
=
"/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg"
;
docModelPdu
.
curV
=
0
;
docModelPdu
.
curH
=
0
;
docModelPdu
.
scale
=
1
;
docModelPdu
.
visible
=
false
;
docModelPdu
.
action
=
0
;
//0,无操作, 1翻页、2.显示/隐藏
docModelPdu
.
id
=
_param
.
id
||
""
;
//文档在服务器数据库中的唯一id
docModelPdu
.
docType
=
_param
.
docType
||
"pdf2swf"
;
docModelPdu
.
url
=
_param
.
url
||
""
;
//"http://101.200.150.192/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
relativeUrl
=
_param
.
relativeUrl
||
""
;
//"/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
curV
=
_param
.
curV
||
0
;
docModelPdu
.
curH
=
_param
.
curH
||
0
;
docModelPdu
.
scale
=
_param
.
scale
||
1
;
docModelPdu
.
visible
=
_param
.
visible
||
false
;
docModelPdu
.
action
=
_param
.
action
||
0
;
//0,无操作, 1翻页、2.显示/隐藏
docModelPdu
.
dbId
=
_param
.
dbId
||
""
;
//文档在服务器数据库中的唯一id
console
.
log
(
docModelPdu
);
return
docModelPdu
;
}
unPackPdu
(
owner
,
itemIdx
,
itemData
){
this
.
docList
[
itemIdx
]
=
itemData
;
loger
.
log
(
"文档===unPackPdu "
);
if
(
owner
==
null
||
itemIdx
==
null
||
itemData
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
try
{
console
.
log
(
"文档收到数据===unPackPdu "
);
let
docModelPdu
=
pdu
[
'RCDocSendDataModel'
].
decode
(
itemData
);
let
docModelPdu
=
pdu
[
'RCDocSendDataModelPdu'
].
decode
(
itemData
);
//console.log(whiteBoardModelPdu);
loger
.
log
(
docModelPdu
);
//
loger.log(docModelPdu);
return
docModelPdu
;
}
catch
(
err
){
console
.
log
(
"
unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
loger
.
log
(
"文档收到数据
unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
}
return
null
;
}
...
...
@@ -187,6 +270,7 @@ class DocApe extends Ape {
//this.tableUpdateHandler(owner, tableId, itemData);
//loger.log('tableInsertHandler---',itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
loger
.
log
(
'tableInsertHandler'
,
itemDataInfo
);
}
...
...
@@ -201,8 +285,8 @@ class DocApe extends Ape {
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
){
if
(
this
.
docList
[
itemIdxs
[
i
]]){
loger
.
log
(
"删除文档数据:"
,
itemIdxs
[
i
]);
delete
this
.
docList
[
itemIdxs
[
i
]];
loger
.
log
(
"删除文档数据:"
,
itemIdxs
[
i
],
"当前剩余的文档数据"
,
this
.
docList
);
}
}
}
...
...
@@ -210,6 +294,31 @@ class DocApe extends Ape {
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
//let itemDataInfo = pdu['RCDocSendDataRequestPdu'].decode(itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
==
null
){
try
{
let
recordInfo
=
pdu
[
'RCDocSendDataRequestPdu'
].
decode
(
itemData
);
recordInfo
.
type
=
ApeConsts
.
DOCUMENT_LOAD
;
recordInfo
.
ext
=
recordInfo
.
name
.
substr
(
recordInfo
.
name
.
indexOf
(
'.'
)
+
1
);
recordInfo
.
wbid
=
(
recordInfo
.
id
<<
10
)
+
recordInfo
.
curPageNo
;
recordInfo
.
isPicture
=
~
[
'bmp'
,
'png'
,
'gif'
,
'jpg'
,
'jpeg'
].
indexOf
(
recordInfo
.
ext
);
if
(
recordInfo
.
isPicture
)
{
recordInfo
.
namePath
=
recordInfo
.
uri
.
substring
(
0
,
recordInfo
.
uri
.
lastIndexOf
(
'.'
));
recordInfo
.
loadURL
=
recordInfo
.
namePath
+
'.'
+
recordInfo
.
ext
;
}
else
{
recordInfo
.
namePath
=
recordInfo
.
uri
.
substring
(
0
,
recordInfo
.
uri
.
lastIndexOf
(
'/'
));
recordInfo
.
loadURL
=
`
$
{
recordInfo
.
namePath
}
/${recordInfo.curPageNo}.jpg`
;
}
this
.
docList
[
itemIdx
]
=
recordInfo
;
// this.emit(MessageTypes.DOC_UPDATE, recordInfo);
loger
.
log
(
'Doc update ->'
+
itemIdx
,
recordInfo
);
}
catch
(
e
)
{
loger
.
warn
(
'Doc Table Update Decode包异常'
);
}
return
;
}
loger
.
log
(
'tableUpdateHandler'
,
itemDataInfo
);
/*try {
const recordInfo = pdu['RCDocSendDataRequestPdu'].decode(itemData);
...
...
src/apes/WhiteBoardApe.js
查看文件 @
6740de7
...
...
@@ -48,10 +48,12 @@ class WhiteBoardApe extends Ape {
ApeConsts
.
WHITEBOARD_OBJ_TABLE_NAME
,
ApeConsts
.
WHITEBOARD_OBJ_TABLE_TAG
,
0
,
new
ArrayBuffer
);
// ape listeners
this
.
on
(
pdu
.
RCPDU_CONFERENCE_SEND_DATA_REQUEST
,
this
.
whiteboardMsgComingHandler
.
bind
(
this
));
this
.
on
(
pdu
.
RCPDU_SESSION_JOIN_RESPONSE
,
this
.
_joinSessionHandler
.
bind
(
this
));
// 白板延迟
this
.
_apeDelayed
=
true
;
//this.on(pdu.RCPDU_CONFERENCE_SEND_DATA_REQUEST, this.whiteboardMsgComingHandler.bind(this));//这个是会议消息类型,flash里在使用这里不再使用,各个模块的消息由模块自己来处理
// 白板延迟
//this._apeDelayed = true;
}
_joinSessionHandler
(
confInfo
)
{
...
...
@@ -83,7 +85,7 @@ class WhiteBoardApe extends Ape {
return
;
}
itemIdx
=
parseInt
(
Date
.
now
()
/
1000
);
itemIdx
=
EngineUtils
.
generateNodeID
(
);
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
if
(
whiteBoardModelPdu
==
null
){
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
...
...
@@ -119,15 +121,15 @@ class WhiteBoardApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"
白板insert数据======111111111111=tableItemPdu.
itemIdx="
+
tableItemPdu
.
itemIdx
);
console
.
log
(
"
添加白板数据=====
itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//删除所有标注
sendDeleteAllAnnotation
(
_param
){
let
len
=
0
;
for
(
let
key
in
this
.
annoInfos
){
console
.
log
(
"key:"
+
key
);
console
.
log
(
"删除白板数据,itemIdx:"
+
this
.
annoInfos
[
key
]);
//console.log("key:"+key);
console
.
log
(
"删除白板数据,itemIdx:"
+
key
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
...
...
@@ -285,10 +287,14 @@ class WhiteBoardApe extends Ape {
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
whiteboardMsgComingHandler
(
pdu
)
{
loger
.
warn
(
'whiteboardMsgComingHandler needs to be handled.'
);
const
recordInfo
=
pdu
[
'RCWhiteboardDataRequestPdu'
].
decode
(
pdu
);
loger
.
log
(
"whiteboardMsgComingHandler"
,
recordInfo
);
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
)
{
...
...
src/pdus/pro.js
查看文件 @
6740de7
...
...
@@ -713,22 +713,22 @@ message RCDocSendDataRequestPdu {
optional
uint32
scale
=
10
;
optional
uint32
page_num
=
11
;
}
message
RCDocSendDataModel
{
message
RCDocSendDataModel
Pdu
{
required
uint32
item_idx
=
1
;
//唯一标识
required
uint32
owner
=
2
;
optional
uint32
from
=
3
;
optional
uint32
cur_page_no
=
4
;
optional
uint32
page_num
=
5
;
required
string
file_type
=
6
;
required
string
doc_type
=
7
;
required
string
relative_url
=
8
;
//文档相对地址
optional
string
file_type
=
6
;
optional
string
doc_type
=
7
;
optional
string
relative_url
=
8
;
//文档相对地址
optional
string
url
=
9
;
//文档地址
optional
uint32
cur_V
=
10
;
optional
uint32
cur_H
=
11
;
optional
uint32
scale
=
12
;
optional
bool
visible
=
13
;
optional
uint32
action
=
14
;
//0,无操作, 1翻页、2.显示/隐藏
optional
string
id
=
15
;
//文档在服务器数据库中的唯一id
optional
string
db_
id
=
15
;
//文档在服务器数据库中的唯一id
}
message
RCGiftSendDataRequestPdu
{
optional
uint32
initiator
=
1
;
...
...
请
注册
或
登录
后发表评论