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 18:38:44 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
87c85e73bfa52568eac4f4e419829a39d56a91b0
87c85e73
1 parent
1352a499
1.课堂的状态pdu结构调整
2.白板和文档的数据关联
显示空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
226 行增加
和
77 行删除
dist/McuClient.js
src/EngineEntrance.js
src/apes/ApeConsts.js
src/apes/DocApe.js
src/apes/WhiteBoardApe.js
src/mcu.js
src/pdus/pro.js
dist/McuClient.js
查看文件 @
87c85e7
...
...
@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/
}
/******/
var
hotApplyOnUpdate
=
true
;
/******/
var
hotCurrentHash
=
"
5a5a372231e8c0f8aab9
"
;
// eslint-disable-line no-unused-vars
/******/
var
hotCurrentHash
=
"
3960713dc1161612a7cd
"
;
// eslint-disable-line no-unused-vars
/******/
var
hotCurrentModuleData
=
{};
/******/
var
hotCurrentParents
=
[];
// eslint-disable-line no-unused-vars
...
...
@@ -752,7 +752,8 @@ return /******/ (function(modules) { // webpackBootstrap
_GlobalConfig2
.
default
.
setCurrentStatus
(
_GlobalConfig2
.
default
.
statusCode_0
);
_this
.
on
(
_MessageTypes2
.
default
.
MCU_ERROR
,
_this
.
_mcuErrorHandler
.
bind
(
_this
));
_this
.
on
(
_MessageTypes2
.
default
.
DOC_SHOW
,
_this
.
docShowHandler
.
bind
(
_this
));
//this.on(MessageTypes.DOC_SHOW, this.docShowHandler.bind(this));
// Sass平台层
_sass
=
_Sass2
.
default
;
...
...
@@ -776,7 +777,7 @@ return /******/ (function(modules) { // webpackBootstrap
_confer_ape
.
on
(
'*'
,
function
(
type
,
data
)
{
return
_this
.
_emit
(
type
,
data
);
});
_confer_ape
.
on
(
_MessageTypes2
.
default
.
DOC_SWITCH
,
_this
.
docSwitchHandler
.
bind
(
_
this
));
//_confer_ape.on(MessageTypes.DOC_SWITCH, this.docSwitchHandler.bind(
this));
_chat_ape
=
new
_ChatApe2
.
default
();
_chat_ape
.
on
(
'*'
,
function
(
type
,
data
)
{
...
...
@@ -800,7 +801,8 @@ return /******/ (function(modules) { // webpackBootstrap
_whiteboard_ape
.
on
(
'*'
,
function
(
type
,
data
)
{
return
_this
.
_emit
(
type
,
data
);
});
_whiteboard_ape
.
on
(
_MessageTypes2
.
default
.
WHITEBOARD_ANNOTATION_UPDATE
,
_this
.
annoUpdateHandler
.
bind
(
_this
));
//_whiteboard_ape.on(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE, this.annoUpdateHandler.bind(this));
//公开外部调用的方法
//class
...
...
@@ -833,7 +835,6 @@ return /******/ (function(modules) { // webpackBootstrap
_this
.
sendDocumentDelete
=
_this
.
_sendDocumentDelete
;
//删除文档
_this
.
sendDocumentDeleteAll
=
_this
.
_documentDeleteAll
;
//删除所有文档
_this
.
sendDocumentCommand
=
_this
.
_sendDocumentCommand
;
//操作文档(翻页、缩放、滚动...)
return
_this
;
}
...
...
@@ -1381,26 +1382,27 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
//
文档变更
//
// 文档变更,白板也需要做处理
},
{
key
:
'docUpdateHandler'
,
value
:
function
docUpdateHandler
(
docItem
)
{
loger
.
log
(
'Doc UpdateId ->'
+
docItem
.
id
+
'| activeDocId ->'
+
_confer_ape
.
activeDocId
);
if
(
docItem
.
id
==
_confer_ape
.
activeDocId
)
{
this
.
_emit
(
_MessageTypes2
.
default
.
DOC_SHOW
,
docItem
);
value
:
function
docUpdateHandler
(
_data
)
{
loger
.
log
(
'Doc UpdateId ->'
,
_data
);
if
(
_whiteboard_ape
)
{
_whiteboard_ape
.
docUpdateHandler
(
_data
);
}
}
//文档删除
//文档删除
,白板也需要做处理
},
{
key
:
'docDeleteHandler'
,
value
:
function
docDeleteHandler
(
docItem
)
{
if
(
docItem
.
id
==
_confer_ape
.
activeDocId
)
{
this
.
_emit
(
_MessageTypes2
.
default
.
DOC_DELETE
,
docItem
);
value
:
function
docDeleteHandler
(
_data
)
{
if
(
_whiteboard_ape
)
{
_whiteboard_ape
.
docDeleteHandler
(
_data
);
}
}
//文档加入频道成功,同步到MCU服务器上的数据
},
{
...
...
@@ -1444,7 +1446,7 @@ return /******/ (function(modules) { // webpackBootstrap
// "uploadEndTime": "2017-02-03 11:54:27",
// "uploadStartTime": "2017-02-03 11:54:27"
//}
loger
.
log
(
"
上传文档
到mcu"
,
value
);
loger
.
log
(
"
判断是否需要把提前上传的文档上传
到mcu"
,
value
);
var
paramInfo
=
{
"pageNum"
:
value
.
pdfSize
,
"fileName"
:
value
.
name
,
...
...
@@ -3575,7 +3577,7 @@ return /******/ (function(modules) { // webpackBootstrap
// 会议发送消息 -- 消息同意序列号
value
:
function
send
(
msg
)
{
if
(
this
.
connected
)
{
loger
.
log
(
'MCU-发送会议数据....'
,
msg
);
loger
.
log
(
'MCU-发送会议数据....'
);
this
.
_everSocket
.
send
(
msg
.
toArrayBuffer
());
}
else
{
loger
.
log
(
'MCU-发送会议数据失败,MCU底层通道不可用'
);
...
...
@@ -14442,7 +14444,7 @@ return /******/ (function(modules) { // webpackBootstrap
Object
.
defineProperty
(
exports
,
"__esModule"
,
{
value
:
true
});
var
_default
=
"\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required string name = 2;\n optional bytes description = 3;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu class_description = 4;//conf_desc\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu class_description = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu class_description = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel
{\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 curPage
= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\nmessage RCClassSendDataModelPdu {\n optional uint32 item_idx=1;\n optional uint32 from=2;\n optional uint32 owner=3;\n optional uint32 action_type=4;//\u72B6\u6001\u6539\u53D8\u7684\u7C7B\u578B\n optional RCClassStatusInfoPdu class_status_info=5;//\u5F53\u524D\u8BFE\u5802\u72B6\u6001\u7684\u4FE1\u606F\n}\nmessage RCClassStatusInfoPdu {\n optional uint32 node_id=1;//mcu\u4E2D\u7684\u552F\u4E00ID\n optional string user_id=2;\n optional string user_name=3;\n optional string site_id=4;//\u7AD9\u70B9\u53F7\n optional uint32 class_id=5;\n optional string class_name=6;\n required uint32 class_type=7;//\u8BFE\u5802\u7C7B\u578B\n required uint32 class_status=9;//\u8BFE\u5802\u7684\u72B6\u6001\n optional string class_startTime=10;//\u8BFE\u5802\u70B9\u51FB\u5F00\u59CB\u65F6\u95F4\n optional string class_stopTime=11;//\u6700\u540E\u4E00\u6B21\u505C\u6B62\u7684\u65F6\u95F4(\u70B9\u6682\u505C\u6216\u7ED3\u675F)\uFF0C\u6BCF\u6B21\u53D1\u9001\u6570\u636E\u90FD\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\u6233\n optional uint32 class_timestamp=12;//\u76F8\u5BF9\u4E8E\u70B9\u5F00\u59CB\u8BFE\u5802\u7684\u65F6\u95F4\u6233\n optional string class_beginTime=13;//\u8BFE\u5802\u521B\u5EFA\u7684\u65F6\u95F4,\u8FD9\u4E2A\u662FSass\u8FD4\u56DE\u7684\n optional string class_endTime=14;//\u8BFE\u5802\u7ED3\u675F\u7684\u65F6\u95F4\uFF0C\u8FD9\u4E2A\u662FSass\u8FD4\u56DE\u7684\n optional bool record_status=15;//\u5F53\u524D\u5F55\u5236\u72B6\u6001\n optional uint32 record_timestamp=16;//\u76F8\u5BF9\u4E8E\u9996\u6B21\u5F00\u59CB\u5F55\u5236\u7684\u65F6\u95F4\u6233\n optional string record_fileName=17;//\u5F55\u5236\u7684\u6587\u4EF6\u540D\n optional string record_downloadUrl=18;//\u4E0B\u8F7D\u5730\u5740\n optional uint32 server_timestamp=19;//\u5F53\u524D\u7684\u7CFB\u7EDF\u65F6\u95F4\u6233\n optional uint32 active_doc_id=20;//\u5F53\u524D\u6FC0\u6D3B\u7684\u6587\u6863id\n optional uint32 active_doc_cur_page=21;//\u5F53\u524D\u6FC0\u6D3B\u7684\u6587\u6863\u7684\u5F53\u524D\u9875\n}\n\n//end\n"
;
var
_default
=
"\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required string name = 2;\n optional bytes description = 3;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu class_description = 4;//conf_desc\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu class_description = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu class_description = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel
Pdu {\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 cur_page_no
= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\nmessage RCClassSendDataModelPdu {\n optional uint32 item_idx=1;\n optional uint32 from=2;\n optional uint32 owner=3;\n optional uint32 action_type=4;//\u72B6\u6001\u6539\u53D8\u7684\u7C7B\u578B\n optional RCClassStatusInfoPdu class_status_info=5;//\u5F53\u524D\u8BFE\u5802\u72B6\u6001\u7684\u4FE1\u606F\n}\nmessage RCClassStatusInfoPdu {\n optional uint32 node_id=1;//mcu\u4E2D\u7684\u552F\u4E00ID\n optional string user_id=2;\n optional string user_name=3;\n optional string site_id=4;//\u7AD9\u70B9\u53F7\n optional uint32 class_id=5;\n optional string class_name=6;\n required uint32 class_type=7;//\u8BFE\u5802\u7C7B\u578B\n required uint32 class_status=9;//\u8BFE\u5802\u7684\u72B6\u6001\n optional string class_startTime=10;//\u8BFE\u5802\u70B9\u51FB\u5F00\u59CB\u65F6\u95F4\n optional string class_stopTime=11;//\u6700\u540E\u4E00\u6B21\u505C\u6B62\u7684\u65F6\u95F4(\u70B9\u6682\u505C\u6216\u7ED3\u675F)\uFF0C\u6BCF\u6B21\u53D1\u9001\u6570\u636E\u90FD\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\u6233\n optional uint32 class_timestamp=12;//\u76F8\u5BF9\u4E8E\u70B9\u5F00\u59CB\u8BFE\u5802\u7684\u65F6\u95F4\u6233\n optional string class_beginTime=13;//\u8BFE\u5802\u521B\u5EFA\u7684\u65F6\u95F4,\u8FD9\u4E2A\u662FSass\u8FD4\u56DE\u7684\n optional string class_endTime=14;//\u8BFE\u5802\u7ED3\u675F\u7684\u65F6\u95F4\uFF0C\u8FD9\u4E2A\u662FSass\u8FD4\u56DE\u7684\n optional bool record_status=15;//\u5F53\u524D\u5F55\u5236\u72B6\u6001\n optional uint32 record_timestamp=16;//\u76F8\u5BF9\u4E8E\u9996\u6B21\u5F00\u59CB\u5F55\u5236\u7684\u65F6\u95F4\u6233\n optional string record_fileName=17;//\u5F55\u5236\u7684\u6587\u4EF6\u540D\n optional string record_downloadUrl=18;//\u4E0B\u8F7D\u5730\u5740\n optional uint32 server_timestamp=19;//\u5F53\u524D\u7684\u7CFB\u7EDF\u65F6\u95F4\u6233\n optional uint32 active_doc_id=20;//\u5F53\u524D\u6FC0\u6D3B\u7684\u6587\u6863id\n optional uint32 active_doc_cur_page=21;//\u5F53\u524D\u6FC0\u6D3B\u7684\u6587\u6863\u7684\u5F53\u524D\u9875\n}\n\n//end\n"
;
exports
.
default
=
_default
;
;
...
...
@@ -16622,6 +16624,9 @@ return /******/ (function(modules) { // webpackBootstrap
var
loger
=
_Loger2
.
default
.
getLoger
(
'DocApe'
);
var
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
var
DOC_ACTION_NORMAL
=
0
;
//无操作
var
DOC_ACTION_SWITCH
=
1
;
//切换文档
var
DOC_ACTION_COMMAND
=
2
;
//文档操作:翻页、滚动、缩放
var
DocApe
=
function
(
_Ape
)
{
_inherits
(
DocApe
,
_Ape
);
...
...
@@ -16749,7 +16754,7 @@ return /******/ (function(modules) { // webpackBootstrap
},
{
key
:
'documentSwitch'
,
value
:
function
documentSwitch
(
paramInfo
)
{
console
.
log
(
this
.
docList
);
//
console.log(this.docList);
//获取已经存在的数据
var
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
)
{
...
...
@@ -16758,11 +16763,12 @@ return /******/ (function(modules) { // webpackBootstrap
return
;
}
//更新数据的字段
docDataModel
.
action
=
DOC_ACTION_SWITCH
;
docDataModel
.
visible
=
!
docDataModel
.
visible
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//操作文档(翻页、缩放、滚动...)
//操作文档(翻页、缩放、滚动...)
//0,无操作, 1翻页、缩放/滚动,2.显示/隐藏
},
{
key
:
'documentCommand'
,
...
...
@@ -16778,6 +16784,7 @@ return /******/ (function(modules) { // webpackBootstrap
return
;
}
//更新数据的字段
docDataModel
.
action
=
DOC_ACTION_COMMAND
;
docDataModel
.
curPageNo
=
docDataModel
.
curPageNo
+
1
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
...
...
@@ -16850,7 +16857,7 @@ return /******/ (function(modules) { // webpackBootstrap
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
optional uint32 action=14;//0,无操作, 1翻页
/缩放/滚动
、2.显示/隐藏
optional string doc_id=15;//文档在服务器数据库中的唯一id
optional string file_name=16;//文档的名字
optional string dynamic_TS=17;//"dynamicTransferStatic": "0"
...
...
@@ -16872,7 +16879,7 @@ return /******/ (function(modules) { // webpackBootstrap
docModelPdu
.
curH
=
_param
.
curH
||
0
;
docModelPdu
.
scale
=
_param
.
scale
||
1
;
docModelPdu
.
visible
=
_param
.
visible
||
false
;
docModelPdu
.
action
=
_param
.
action
||
0
;
//0,无操作, 1翻页、2.显示/隐藏
docModelPdu
.
action
=
_param
.
action
||
DOC_ACTION_NORMAL
;
//0,无操作, 1翻页、2.显示/隐藏, 3缩放/滚动
docModelPdu
.
docId
=
_param
.
docId
||
""
;
//文档在服务器数据库中的唯一id,必须有
docModelPdu
.
md5
=
_param
.
md5
||
""
;
//MD5
docModelPdu
.
fileName
=
_param
.
fileName
||
"doc_"
+
_itemIdx
;
//文档的名字
...
...
@@ -16940,6 +16947,23 @@ return /******/ (function(modules) { // webpackBootstrap
if
(
itemDataInfo
!=
null
)
{
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
loger
.
log
(
'tableUpdateHandler'
,
itemDataInfo
);
/* switch (itemDataInfo.action){
case DOC_ACTION_SWITCH:
break;
case DOC_ACTION_COMMAND:
break;
case DOC_ACTION_NORMAL:
break;
default :
break;
}*/
_GlobalConfig2
.
default
.
activeDocId
=
0
;
//默认id
_GlobalConfig2
.
default
.
activeDocCurPage
=
1
;
//默认页数
if
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
)
{
_GlobalConfig2
.
default
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
_GlobalConfig2
.
default
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
}
this
.
_emit
(
_MessageTypes2
.
default
.
DOC_UPDATE
,
itemDataInfo
);
}
else
{
loger
.
log
(
'tableUpdateHandler 数据无效--> itemIdx'
,
itemIdx
);
...
...
@@ -17022,6 +17046,12 @@ return /******/ (function(modules) { // webpackBootstrap
__REACT_HOT_LOADER__
.
register
(
itemIdx
,
'itemIdx'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
__REACT_HOT_LOADER__
.
register
(
DOC_ACTION_NORMAL
,
'DOC_ACTION_NORMAL'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
__REACT_HOT_LOADER__
.
register
(
DOC_ACTION_SWITCH
,
'DOC_ACTION_SWITCH'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
__REACT_HOT_LOADER__
.
register
(
DOC_ACTION_COMMAND
,
'DOC_ACTION_COMMAND'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
__REACT_HOT_LOADER__
.
register
(
DocApe
,
'DocApe'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
__REACT_HOT_LOADER__
.
register
(
_default
,
'default'
,
'D:/work/McuClient/src/apes/DocApe.js'
);
...
...
@@ -17115,6 +17145,8 @@ return /******/ (function(modules) { // webpackBootstrap
var
_this
=
_possibleConstructorReturn
(
this
,
(
WhiteBoardApe
.
__proto__
||
Object
.
getPrototypeOf
(
WhiteBoardApe
)).
call
(
this
,
_ApeConsts2
.
default
.
WHITEBOARD_SESSION_ID
,
_ApeConsts2
.
default
.
WHITEBOARD_SESSION_NAME
,
_ApeConsts2
.
default
.
WHITEBOARD_SESSION_TAG
));
_this
.
annoInfos
=
{};
// 白板延迟
// this._apeDelayed = true;
//Ape Models
_this
.
registerKey
(
_this
.
_session_id
,
_this
.
_session_name
,
_this
.
_session_tag
,
new
ArrayBuffer
());
...
...
@@ -17122,11 +17154,7 @@ return /******/ (function(modules) { // webpackBootstrap
// ape listeners
_this
.
on
(
_pdus2
.
default
.
RCPDU_SESSION_JOIN_RESPONSE
,
_this
.
_joinSessionHandler
.
bind
(
_this
));
//this.on(pdu.RCPDU_CONFERENCE_SEND_DATA_REQUEST, this.whiteboardMsgComingHandler.bind(this));//这个是会议消息类型,flash里在使用这里不再使用,各个模块的消息由模块自己来处理
// 白板延迟
//this._apeDelayed = true;
return
_this
;
}
...
...
@@ -17208,7 +17236,6 @@ return /******/ (function(modules) { // webpackBootstrap
},
{
key
:
'sendDeleteAllAnnotation'
,
value
:
function
sendDeleteAllAnnotation
(
_param
)
{
var
len
=
0
;
for
(
var
key
in
this
.
annoInfos
)
{
//console.log("key:"+key);
console
.
log
(
"删除白板数据,itemIdx:"
+
key
);
...
...
@@ -17265,7 +17292,7 @@ return /******/ (function(modules) { // webpackBootstrap
itemIdx
=
_param
.
itemIdx
;
var
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
console
.
log
(
whiteBoardModelPdu
);
//
console.log(whiteBoardModelPdu);
if
(
whiteBoardModelPdu
==
null
)
{
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
...
...
@@ -17326,7 +17353,7 @@ return /******/ (function(modules) { // webpackBootstrap
return
null
;
}
//判断type类型,根据type设置不同的参数
var
whiteBoardModelPdu
=
new
_pdus2
.
default
[
'RCWhiteBoardDataModel'
]();
var
whiteBoardModelPdu
=
new
_pdus2
.
default
[
'RCWhiteBoardDataModel
Pdu
'
]();
switch
(
_param
.
type
)
{
case
TYPE_BIGHT
:
break
;
...
...
@@ -17351,8 +17378,13 @@ return /******/ (function(modules) { // webpackBootstrap
whiteBoardModelPdu
.
type
=
_param
.
type
;
whiteBoardModelPdu
.
itemIdx
=
_itemIdx
;
whiteBoardModelPdu
.
initiator
=
_GlobalConfig2
.
default
.
nodeId
;
whiteBoardModelPdu
.
parentId
=
_param
.
parentId
||
0
;
whiteBoardModelPdu
.
curPage
=
_param
.
curPage
||
1
;
/* whiteBoardModelPdu.parentId=_param.parentId||0;
whiteBoardModelPdu.curPage=_param.curPage||1;*/
whiteBoardModelPdu
.
parentId
=
_GlobalConfig2
.
default
.
activeDocId
;
//当前激活的文档id
whiteBoardModelPdu
.
curPageNo
=
_GlobalConfig2
.
default
.
activeDocCurPage
;
//当前激活的文档页码
whiteBoardModelPdu
.
pointGroup
=
_EngineUtils2
.
default
.
arrayToJsonString
(
_param
.
pointGroup
);
whiteBoardModelPdu
.
color
=
_param
.
color
||
"#000000"
;
...
...
@@ -17361,14 +17393,14 @@ return /******/ (function(modules) { // webpackBootstrap
},
{
key
:
'unPackPdu'
,
value
:
function
unPackPdu
(
owner
,
itemIdx
,
itemData
)
{
this
.
annoInfos
[
itemIdx
]
=
itemData
;
try
{
console
.
log
(
"白板收到数据===unPackPdu "
);
var
whiteBoardModelPdu
=
_pdus2
.
default
[
'RCWhiteBoardDataModel'
].
decode
(
itemData
);
var
whiteBoardModelPdu
=
_pdus2
.
default
[
'RCWhiteBoardDataModel
Pdu
'
].
decode
(
itemData
);
//console.log(whiteBoardModelPdu);
//loger.log(whiteBoardModelPdu);
var
_pointGroup
=
_EngineUtils2
.
default
.
arrayFromJsonString
(
whiteBoardModelPdu
.
pointGroup
);
whiteBoardModelPdu
.
pointGroup
=
_pointGroup
;
this
.
annoInfos
[
itemIdx
]
=
whiteBoardModelPdu
;
return
whiteBoardModelPdu
;
}
catch
(
err
)
{
console
.
log
(
"unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
...
...
@@ -17377,18 +17409,16 @@ return /******/ (function(modules) { // webpackBootstrap
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
},
{
key
:
'whiteboardMsgComingHandler'
,
value
:
function
whiteboardMsgComingHandler
(
_data
)
{
/* whiteboardMsgComingHandler(_data) {
//flash RCConferenceSendDataRequestPdu
//loger.warn('whiteboardMsgComingHandler needs to be handled.');
//const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu);
//loger.log("whiteboardMsgComingHandler",recordInfo);
var
receiveInfo
=
_pdus2
.
default
[
'RCConferenceSendDataRequestPdu'
].
decode
(
_data
);
loger
.
log
(
"whiteboardMsgComingHandler"
,
receiveInfo
);
}
let receiveInfo = pdu['RCConferenceSendDataRequestPdu'].decode(_data);
loger.log("whiteboardMsgComingHandler",receiveInfo);
}*/
},
{
key
:
'tableInsertHandler'
,
value
:
function
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
...
...
@@ -17402,13 +17432,25 @@ return /******/ (function(modules) { // webpackBootstrap
}*/
var
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableInsertHandler'
,
whiteBoardModel
);
if
(
whiteBoardModel
)
{
if
(
_GlobalConfig2
.
default
.
activeDocId
==
whiteBoardModel
.
parentId
&&
_GlobalConfig2
.
default
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
)
{
loger
.
log
(
'WHITEBOARD_ANNOTAION_INSERT 显示到界面上'
,
whiteBoardModel
);
this
.
_emit
(
_MessageTypes2
.
default
.
WHITEBOARD_ANNOTAION_INSERT
,
whiteBoardModel
);
}
}
}
},
{
key
:
'tableUpdateHandler'
,
value
:
function
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
var
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableUpdateHandler'
,
whiteBoardModel
);
if
(
whiteBoardModel
)
{
if
(
_GlobalConfig2
.
default
.
activeDocId
==
whiteBoardModel
.
parentId
&&
_GlobalConfig2
.
default
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
)
{
loger
.
log
(
'WHITEBOARD_ANNOTATION_UPDATE 显示到界面上'
,
whiteBoardModel
);
this
.
_emit
(
_MessageTypes2
.
default
.
WHITEBOARD_ANNOTATION_UPDATE
,
whiteBoardModel
);
}
}
/* try{
console.log("白板收到数据===tableUpdateHandler ");
let whiteBoardModelPdu= pdu['RCWhiteBoardDataModel'].decode(itemData);
...
...
@@ -17435,8 +17477,6 @@ return /******/ (function(modules) { // webpackBootstrap
} else {
loger.log('白板动作忽略,类型:', ApeConsts(recordInfo.type));
}*/
this
.
_emit
(
_MessageTypes2
.
default
.
WHITEBOARD_ANNOTATION_UPDATE
,
whiteBoardModel
);
}
},
{
key
:
'tableDeleteHandler'
,
...
...
@@ -17456,6 +17496,45 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
}
//文档更新,白板也要更新
},
{
key
:
'docUpdateHandler'
,
value
:
function
docUpdateHandler
(
_data
)
{
loger
.
log
(
"白板收到文档更新的消息docUpdateHandler"
,
_data
);
for
(
var
key
in
this
.
annoInfos
)
{
var
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_GlobalConfig2
.
default
.
activeDocId
&&
item
.
curPageNo
==
_GlobalConfig2
.
default
.
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);
}
}*/
}
//删除白板数据
},
{
key
:
'docDeleteHandler'
,
value
:
function
docDeleteHandler
(
_parentId
)
{
loger
.
log
(
"白板收到文档删除的消息docDeleteHandler"
,
_parentId
);
for
(
var
key
in
this
.
annoInfos
)
{
var
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_parentId
)
{
loger
.
log
(
"文档删除,白板数据也删除,itemIdx:"
+
key
,
"_parentId:"
,
_parentId
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
}
}]);
return
WhiteBoardApe
;
...
...
src/EngineEntrance.js
查看文件 @
87c85e7
...
...
@@ -51,7 +51,8 @@ export default class MessageEntrance extends Emiter {
GlobalConfig
.
setCurrentStatus
(
GlobalConfig
.
statusCode_0
);
this
.
on
(
MessageTypes
.
MCU_ERROR
,
this
.
_mcuErrorHandler
.
bind
(
this
));
this
.
on
(
MessageTypes
.
DOC_SHOW
,
this
.
docShowHandler
.
bind
(
this
));
//this.on(MessageTypes.DOC_SHOW, this.docShowHandler.bind(this));
// Sass平台层
_sass
=
Sass
;
...
...
@@ -70,7 +71,7 @@ export default class MessageEntrance extends Emiter {
// 注册所有应用Ape
_confer_ape
=
new
ConferApe
();
_confer_ape
.
on
(
'*'
,
(
type
,
data
)
=>
this
.
_emit
(
type
,
data
));
_confer_ape
.
on
(
MessageTypes
.
DOC_SWITCH
,
this
.
docSwitchHandler
.
bind
(
this
));
//
_confer_ape.on(MessageTypes.DOC_SWITCH, this.docSwitchHandler.bind(this));
_chat_ape
=
new
ChatApe
();
_chat_ape
.
on
(
'*'
,
(
type
,
data
)
=>
this
.
_emit
(
type
,
data
));
...
...
@@ -87,7 +88,7 @@ export default class MessageEntrance extends Emiter {
_whiteboard_ape
=
new
WhiteBoardApe
();
_whiteboard_ape
.
on
(
'*'
,
(
type
,
data
)
=>
this
.
_emit
(
type
,
data
));
_whiteboard_ape
.
on
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
this
.
annoUpdateHandler
.
bind
(
this
));
//
_whiteboard_ape.on(MessageTypes.WHITEBOARD_ANNOTATION_UPDATE, this.annoUpdateHandler.bind(this));
//公开外部调用的方法
...
...
@@ -122,7 +123,6 @@ export default class MessageEntrance extends Emiter {
this
.
sendDocumentDelete
=
this
.
_sendDocumentDelete
;
//删除文档
this
.
sendDocumentDeleteAll
=
this
.
_documentDeleteAll
;
//删除所有文档
this
.
sendDocumentCommand
=
this
.
_sendDocumentCommand
;
//操作文档(翻页、缩放、滚动...)
}
...
...
@@ -581,20 +581,22 @@ export default class MessageEntrance extends Emiter {
}
}
// 文档变更
docUpdateHandler
(
docItem
)
{
loger
.
log
(
'Doc UpdateId ->'
+
docItem
.
id
+
'| activeDocId ->'
+
_confer_ape
.
activeDocId
);
if
(
docItem
.
id
==
_confer_ape
.
activeDocId
)
{
this
.
_emit
(
MessageTypes
.
DOC_SHOW
,
docItem
);
//// 文档变更,白板也需要做处理
docUpdateHandler
(
_data
)
{
loger
.
log
(
'Doc UpdateId ->'
,
_data
);
if
(
_whiteboard_ape
){
_whiteboard_ape
.
docUpdateHandler
(
_data
);
}
}
//文档删除
docDeleteHandler
(
docItem
){
if
(
docItem
.
id
==
_confer_ape
.
activeDocId
)
{
this
.
_emit
(
MessageTypes
.
DOC_DELETE
,
docItem
);
//文档删除,白板也需要做处理
docDeleteHandler
(
_data
){
if
(
_whiteboard_ape
){
_whiteboard_ape
.
docDeleteHandler
(
_data
);
}
}
//文档加入频道成功,同步到MCU服务器上的数据
docJoinChannelSuccess
(){
loger
.
log
(
"docJoinChannelSuccess isHost="
,
GlobalConfig
.
isHost
);
...
...
@@ -628,7 +630,7 @@ export default class MessageEntrance extends Emiter {
// "uploadEndTime": "2017-02-03 11:54:27",
// "uploadStartTime": "2017-02-03 11:54:27"
//}
loger
.
log
(
"
上传文档
到mcu"
,
value
);
loger
.
log
(
"
判断是否需要把提前上传的文档上传
到mcu"
,
value
);
let
paramInfo
=
{
"pageNum"
:
value
.
pdfSize
,
"fileName"
:
value
.
name
,
...
...
src/apes/ApeConsts.js
查看文件 @
87c85e7
...
...
@@ -10,7 +10,7 @@ export default function ApeConsts(id) {
ApeConsts
.
CLASS_STATUS_WAIT
=
0
;
//课堂还未开始
ApeConsts
.
CLASS_STATUS_STARTED
=
1
;
//直播中
ApeConsts
.
CLASS_STATUS_PAUSE
=
2
;
//暂停
ApeConsts
.
CLASS_STATUS_CLOSE
=
3
;
//结束
ApeConsts
.
CLASS_STATUS_CLOSE
=
3
;
//结束
//这个是点击结束会议,把所有人踢出课堂,然后把状态值还原为0*************
ApeConsts
.
CLASS_STATUS_UPTATE
=
4
;
//更新课堂状态信息
ApeConsts
.
CLASS_WAIT_START
=
"class.wait.start"
;
//课堂还未开始
...
...
src/apes/DocApe.js
查看文件 @
87c85e7
...
...
@@ -23,6 +23,9 @@ import EngineUtils from 'EngineUtils';
let
loger
=
Loger
.
getLoger
(
'DocApe'
);
let
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
const
DOC_ACTION_NORMAL
=
0
;
//无操作
const
DOC_ACTION_SWITCH
=
1
;
//切换文档
const
DOC_ACTION_COMMAND
=
2
;
//文档操作:翻页、滚动、缩放
class
DocApe
extends
Ape
{
constructor
()
{
...
...
@@ -139,7 +142,7 @@ class DocApe extends Ape {
}
//切换文档
documentSwitch
(
paramInfo
){
console
.
log
(
this
.
docList
);
//
console.log(this.docList);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
){
...
...
@@ -148,11 +151,12 @@ class DocApe extends Ape {
return
;
}
//更新数据的字段
docDataModel
.
action
=
DOC_ACTION_SWITCH
;
docDataModel
.
visible
=!
docDataModel
.
visible
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//操作文档(翻页、缩放、滚动...)
//操作文档(翻页、缩放、滚动...)
//0,无操作, 1翻页、缩放/滚动,2.显示/隐藏
documentCommand
(
paramInfo
){
console
.
log
(
this
.
docList
);
//获取已经存在的数据
...
...
@@ -165,6 +169,7 @@ class DocApe extends Ape {
return
;
}
//更新数据的字段
docDataModel
.
action
=
DOC_ACTION_COMMAND
;
docDataModel
.
curPageNo
=
docDataModel
.
curPageNo
+
1
;
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
...
...
@@ -228,7 +233,7 @@ class DocApe extends Ape {
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
optional uint32 action=14;//0,无操作, 1翻页
/缩放/滚动
、2.显示/隐藏
optional string doc_id=15;//文档在服务器数据库中的唯一id
optional string file_name=16;//文档的名字
optional string dynamic_TS=17;//"dynamicTransferStatic": "0"
...
...
@@ -250,7 +255,7 @@ class DocApe extends Ape {
docModelPdu
.
curH
=
_param
.
curH
||
0
;
docModelPdu
.
scale
=
_param
.
scale
||
1
;
docModelPdu
.
visible
=
_param
.
visible
||
false
;
docModelPdu
.
action
=
_param
.
action
||
0
;
//0,无操作, 1翻页、2.显示/隐藏
docModelPdu
.
action
=
_param
.
action
||
DOC_ACTION_NORMAL
;
//0,无操作, 1翻页、2.显示/隐藏, 3缩放/滚动
docModelPdu
.
docId
=
_param
.
docId
||
""
;
//文档在服务器数据库中的唯一id,必须有
docModelPdu
.
md5
=
_param
.
md5
||
""
;
//MD5
docModelPdu
.
fileName
=
_param
.
fileName
||
"doc_"
+
_itemIdx
;
//文档的名字
...
...
@@ -311,6 +316,23 @@ class DocApe extends Ape {
if
(
itemDataInfo
!=
null
){
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
loger
.
log
(
'tableUpdateHandler'
,
itemDataInfo
);
/* switch (itemDataInfo.action){
case DOC_ACTION_SWITCH:
break;
case DOC_ACTION_COMMAND:
break;
case DOC_ACTION_NORMAL:
break;
default :
break;
}*/
GlobalConfig
.
activeDocId
=
0
;
//默认id
GlobalConfig
.
activeDocCurPage
=
1
;
//默认页数
if
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
){
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
}
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
}
else
{
loger
.
log
(
'tableUpdateHandler 数据无效--> itemIdx'
,
itemIdx
);
...
...
src/apes/WhiteBoardApe.js
查看文件 @
87c85e7
...
...
@@ -41,6 +41,8 @@ class WhiteBoardApe extends Ape {
);
// properties
this
.
annoInfos
=
{};
// 白板延迟
// this._apeDelayed = true;
//Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
...
...
@@ -49,11 +51,7 @@ class WhiteBoardApe extends Ape {
// ape listeners
this
.
on
(
pdu
.
RCPDU_SESSION_JOIN_RESPONSE
,
this
.
_joinSessionHandler
.
bind
(
this
));
//this.on(pdu.RCPDU_CONFERENCE_SEND_DATA_REQUEST, this.whiteboardMsgComingHandler.bind(this));//这个是会议消息类型,flash里在使用这里不再使用,各个模块的消息由模块自己来处理
// 白板延迟
//this._apeDelayed = true;
}
_joinSessionHandler
(
_data
)
{
...
...
@@ -126,7 +124,6 @@ class WhiteBoardApe extends Ape {
}
//删除所有标注
sendDeleteAllAnnotation
(
_param
){
let
len
=
0
;
for
(
let
key
in
this
.
annoInfos
){
//console.log("key:"+key);
console
.
log
(
"删除白板数据,itemIdx:"
+
key
);
...
...
@@ -178,7 +175,7 @@ class WhiteBoardApe extends Ape {
itemIdx
=
_param
.
itemIdx
;
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
console
.
log
(
whiteBoardModelPdu
);
//
console.log(whiteBoardModelPdu);
if
(
whiteBoardModelPdu
==
null
){
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
...
...
@@ -238,7 +235,7 @@ class WhiteBoardApe extends Ape {
return
null
;
}
//判断type类型,根据type设置不同的参数
let
whiteBoardModelPdu
=
new
pdu
[
'RCWhiteBoardDataModel'
];
let
whiteBoardModelPdu
=
new
pdu
[
'RCWhiteBoardDataModel
Pdu
'
];
switch
(
_param
.
type
){
case
TYPE_BIGHT
:
break
;
...
...
@@ -263,22 +260,27 @@ class WhiteBoardApe extends Ape {
whiteBoardModelPdu
.
type
=
_param
.
type
;
whiteBoardModelPdu
.
itemIdx
=
_itemIdx
;
whiteBoardModelPdu
.
initiator
=
GlobalConfig
.
nodeId
;
whiteBoardModelPdu
.
parentId
=
_param
.
parentId
||
0
;
whiteBoardModelPdu
.
curPage
=
_param
.
curPage
||
1
;
/* whiteBoardModelPdu.parentId=_param.parentId||0;
whiteBoardModelPdu.curPage=_param.curPage||1;*/
whiteBoardModelPdu
.
parentId
=
GlobalConfig
.
activeDocId
;
//当前激活的文档id
whiteBoardModelPdu
.
curPageNo
=
GlobalConfig
.
activeDocCurPage
;
//当前激活的文档页码
whiteBoardModelPdu
.
pointGroup
=
EngineUtils
.
arrayToJsonString
(
_param
.
pointGroup
);
whiteBoardModelPdu
.
color
=
_param
.
color
||
"#000000"
;
return
whiteBoardModelPdu
;
}
unPackPdu
(
owner
,
itemIdx
,
itemData
){
this
.
annoInfos
[
itemIdx
]
=
itemData
;
try
{
console
.
log
(
"白板收到数据===unPackPdu "
);
let
whiteBoardModelPdu
=
pdu
[
'RCWhiteBoardDataModel'
].
decode
(
itemData
);
let
whiteBoardModelPdu
=
pdu
[
'RCWhiteBoardDataModel
Pdu
'
].
decode
(
itemData
);
//console.log(whiteBoardModelPdu);
//loger.log(whiteBoardModelPdu);
let
_pointGroup
=
EngineUtils
.
arrayFromJsonString
(
whiteBoardModelPdu
.
pointGroup
);
whiteBoardModelPdu
.
pointGroup
=
_pointGroup
;
this
.
annoInfos
[
itemIdx
]
=
whiteBoardModelPdu
;
return
whiteBoardModelPdu
;
}
catch
(
err
){
console
.
log
(
"unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
...
...
@@ -287,7 +289,7 @@ class WhiteBoardApe extends Ape {
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
whiteboardMsgComingHandler
(
_data
)
{
/*
whiteboardMsgComingHandler(_data) {
//flash RCConferenceSendDataRequestPdu
//loger.warn('whiteboardMsgComingHandler needs to be handled.');
//const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu);
...
...
@@ -295,7 +297,7 @@ class WhiteBoardApe extends Ape {
let receiveInfo = pdu['RCConferenceSendDataRequestPdu'].decode(_data);
loger.log("whiteboardMsgComingHandler",receiveInfo);
}
}
*/
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
/* try{
...
...
@@ -308,12 +310,24 @@ class WhiteBoardApe extends Ape {
}*/
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);
...
...
@@ -342,7 +356,6 @@ class WhiteBoardApe extends Ape {
loger.log('白板动作忽略,类型:', ApeConsts(recordInfo.type));
}*/
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
whiteBoardModel
);
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
// console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649
...
...
@@ -360,6 +373,39 @@ class WhiteBoardApe extends Ape {
}
}
}
//文档更新,白板也要更新
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
;
...
...
src/mcu.js
查看文件 @
87c85e7
...
...
@@ -142,7 +142,7 @@ class MCU extends Emiter {
// 会议发送消息 -- 消息同意序列号
send
(
msg
)
{
if
(
this
.
connected
)
{
loger
.
log
(
'MCU-发送会议数据....'
,
msg
);
loger
.
log
(
'MCU-发送会议数据....'
);
this
.
_everSocket
.
send
(
msg
.
toArrayBuffer
());
}
else
{
loger
.
log
(
'MCU-发送会议数据失败,MCU底层通道不可用'
);
...
...
src/pdus/pro.js
查看文件 @
87c85e7
...
...
@@ -848,12 +848,12 @@ message RCTabUpdateDataRequestPdu {
optional
uint32
uncomprLen
=
3
;
}
message
RCWhiteBoardDataModel
{
message
RCWhiteBoardDataModel
Pdu
{
required
uint32
type
=
1
;
//白板类型
required
uint32
itemIdx
=
2
;
//itemIdx 每一次绘制的唯一标识
required
uint32
initiator
=
3
;
//绘制来自谁
required
uint32
parentId
=
4
;
//父级的id
required
uint32
cur
Page
=
5
;
//页码
required
uint32
cur
_page_no
=
5
;
//页码
optional
string
pointGroup
=
6
;
//坐标点集数组的JSON字符串
optional
string
color
=
7
[
default
=
"#000000"
];
//颜色
optional
uint32
thickness
=
8
;
//线条粗细
...
...
请
注册
或
登录
后发表评论