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
李勇
8 years ago
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f7d0602c7cf04dab83e095e253de6dfb2ba6482f
f7d0602c
1 parent
135bcf0b
1.删除console.log
隐藏空白字符变更
内嵌
并排对比
正在显示
12 个修改的文件
包含
221 行增加
和
217 行删除
src/EngineEntrance.js
src/RecordPlayBackParse.js
src/Sass.js
src/apes/Ape.js
src/apes/AudioApe.js
src/apes/ChatApe.js
src/apes/ConferApe.js
src/apes/DocApe.js
src/apes/MediaModule.js
src/apes/VideoApe.js
src/apes/WhiteBoardApe.js
src/mcu.js
src/EngineEntrance.js
查看文件 @
f7d0602
...
...
@@ -26,7 +26,7 @@ import ArrayBufferUtil from 'libs/ArrayBufferUtil';
import
UTF8
from
'utf-8'
;
let
loger
=
Loger
.
getLoger
(
'MessageEntrance'
);
let
_sdkInfo
=
{
"version"
:
"v.1.
7.0.20170309
-1"
,
"author"
:
"www.3mang.com"
};
let
_sdkInfo
=
{
"version"
:
"v.1.
8.0.20170314
-1"
,
"author"
:
"www.3mang.com"
};
//APE
let
_sass
;
...
...
@@ -470,8 +470,12 @@ export default class MessageEntrance extends Emiter {
if
(
_data
.
currentInfo
)
{
//根据从Sass获取的数据信息,同步最后一次保存的课堂状态信息
loger
.
log
(
"本地同步最后一次保存过的课堂状态信息"
);
GlobalConfig
.
setClassStatusInfo
(
_data
.
currentInfo
);
console
.
log
(
GlobalConfig
.
classStatusInfo
);
try
{
GlobalConfig
.
setClassStatusInfo
(
JSON
.
parse
(
_data
.
currentInfo
));
}
catch
(
err
){
GlobalConfig
.
setClassStatusInfo
(
_data
.
currentInfo
);
}
loger
.
log
(
GlobalConfig
.
classStatusInfo
);
}
else
{
loger
.
log
(
"还没有保存过课堂状信息"
);
}
...
...
@@ -523,12 +527,12 @@ export default class MessageEntrance extends Emiter {
//保存会态信息成功
_sassSaveClassStatusInfoSuccessHandler
(
_data
)
{
loger
.
log
(
'保存课堂状态信息成功.'
);
console
.
log
(
_data
);
loger
.
log
(
_data
);
}
_sassSaveClassRecordInfoSuccessHandler
(
_data
)
{
loger
.
log
(
'保存课堂录制信息成功.'
);
console
.
log
(
_data
);
loger
.
log
(
_data
);
}
//Sass校验流程结束之后,开始加入MCU
...
...
@@ -589,7 +593,7 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData
.
classTimestamp
=
GlobalConfig
.
classTimestamp
;
//课堂进行的累积时间
joinClassSuccessCallBackData
.
recordPlaybackMaxTime
=
GlobalConfig
.
recordPlaybackMaxTime
;
//录制回放的总时间
loger
.
log
(
'加入课堂成功'
);
console
.
log
(
joinClassSuccessCallBackData
);
loger
.
log
(
joinClassSuccessCallBackData
);
//加入课堂成功,广播消息
this
.
_emit
(
MessageTypes
.
CLASS_JOIN_SUCCESS
,
joinClassSuccessCallBackData
);
...
...
@@ -964,7 +968,7 @@ export default class MessageEntrance extends Emiter {
return
;
}
loger
.
log
(
'Doc UpdateId ->'
);
console
.
log
(
_data
);
loger
.
log
(
_data
);
if
(
_whiteboard_ape
)
{
_whiteboard_ape
.
docUpdateHandler
(
_data
);
}
...
...
@@ -980,7 +984,7 @@ export default class MessageEntrance extends Emiter {
//文档加入频道成功,同步到MCU服务器上的数据
docJoinChannelSuccess
()
{
loger
.
log
(
"docJoinChannelSuccess isHost="
,
GlobalConfig
.
isHost
);
console
.
log
(
GlobalConfig
.
docListPrepare
);
loger
.
log
(
GlobalConfig
.
docListPrepare
);
loger
.
log
(
"docJoinChannelSuccess docListPrepare="
);
//如果是主持人,那么需要判断一下文档模块同步的数据和从sass获取的文档数据是否相同,如果mcu服务器不存在的,需要上传
if
(
GlobalConfig
.
isHost
)
{
...
...
@@ -1137,7 +1141,7 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData
.
classTimestamp
=
GlobalConfig
.
classTimestamp
;
//课堂进行的累积时间
joinClassSuccessCallBackData
.
recordPlaybackMaxTime
=
GlobalConfig
.
recordPlaybackMaxTime
;
//录制回放的总时间
console
.
log
(
joinClassSuccessCallBackData
);
loger
.
log
(
joinClassSuccessCallBackData
);
//和加入课堂成功使用同样的消息处理
this
.
_emit
(
MessageTypes
.
CLASS_JOIN_SUCCESS
,
joinClassSuccessCallBackData
);
}
...
...
src/RecordPlayBackParse.js
查看文件 @
f7d0602
...
...
@@ -29,7 +29,7 @@ class RecordPlayBackParse extends Emiter {
loger
.
log
(
"RecordPlayBackParse"
);
parseBuffer
=
new
ByteBuffer
(
ByteBuffer
.
DEFAULT_CAPACITY
,
ByteBuffer
.
LITTLE_ENDIAN
);
parseBuffer
.
clear
();
console
.
log
(
parseBuffer
);
//
console.log(parseBuffer);
this
.
_recordPlaybackTimestamp
=
0
;
//回放的时间
this
.
_recordPlaybackMaxTime
=
0
;
//录制回放的总时间
this
.
_isReady
=
false
;
//录制回放是否已经准备完成
...
...
@@ -53,6 +53,20 @@ class RecordPlayBackParse extends Emiter {
this
.
_apes
[
ape
.
_session_id
]
=
ape
;
}
initReplay
()
{
this
.
_stopTimerCounter
();
this
.
_recordPlaybackTimestamp
=
0
;
//回放的时间
this
.
_recordPlaybackMaxTime
=
0
;
//录制回放的总时间
this
.
_isReady
=
false
;
//录制回放是否已经准备完成
this
.
_conferApeMssages
=
{};
//会议数据
this
.
_chatApeMssages
=
{};
//聊天数据
this
.
_videoApeMssages
=
{};
//视频数据
this
.
_audioApeMssages
=
{};
//音频数据
this
.
_docApeMssages
=
{};
//文档数据
this
.
_whiteApeMssages
=
{};
//白板数据
}
//发送数据个各个APE模块处理,data是数据,seekTime是当前数据需要seek的时间长度(针对音视频的seek)
_everSocketMsgReceivedHandler
(
data
,
seekTime
)
{
let
pduMsg
=
pdu
.
decode_pdu
(
data
);
...
...
@@ -65,7 +79,7 @@ class RecordPlayBackParse extends Emiter {
pduMsg
.
type
=
PduType
.
RCPDU_SEND_DATA_REQUEST
;
pduType
=
PduType
.
RCPDU_SEND_DATA_REQUEST
;
}
loger
.
log
(
'_everSocketMsgReceivedHandler->pduType'
,
pduType
,
"seekTime->"
,
seekTime
);
loger
.
log
(
'_everSocketMsgReceivedHandler->pduType'
,
pduType
,
"seekTime->"
,
seekTime
);
switch
(
pduType
)
{
case
PduType
.
RCPDU_CONNECT_PROVIDER_RESPONSE
:
//加入课堂请求返回数据处理
...
...
@@ -95,7 +109,7 @@ class RecordPlayBackParse extends Emiter {
let
subTypeLabel
=
pdu
.
id2type
(
pduMsg
.
subType
);
//loger.log('MCU-SecondLayer封装消息', 'sessionId', sessionLabel, pduMsg.sessionId, 'subtype', subTypeLabel, pduMsg.subType);
//ape广播事件,只要ape中监听就能收到
ape
.
_emit
(
pduMsg
.
subType
,
pduMsg
.
data
,
seekTime
);
//seekTime是音视频模块seek的时间长度
ape
.
_emit
(
pduMsg
.
subType
,
pduMsg
.
data
,
seekTime
);
//seekTime是音视频模块seek的时间长度
}
else
{
loger
.
warn
(
sessionLabel
+
'尚未注册'
);
}
...
...
@@ -186,12 +200,17 @@ class RecordPlayBackParse extends Emiter {
//开启计时器
_startTimerCounter
()
{
this
.
_timerCounter
.
startTimer
();
if
(
this
.
_timerCounter
)
{
this
.
_timerCounter
.
startTimer
();
}
}
//停止计时器
_stopTimerCounter
()
{
this
.
_timerCounter
.
stopTimer
();
if
(
this
.
_timerCounter
)
{
this
.
_timerCounter
.
stopTimer
();
}
}
_timerCounterUptate
()
{
...
...
@@ -217,12 +236,11 @@ class RecordPlayBackParse extends Emiter {
//加载录制文件
readyRecordPlay
()
{
this
.
_isReady
=
false
;
this
.
_stopTimerCounter
();
this
.
initReplay
();
loger
.
log
(
"读取回放数据"
);
//let url = `http://123.56.73.119:80/h5dev/20170306/1357644520_20170306.rec`;
let
url
=
`
http
:
//${ GlobalConfig.RecordServerIP}:${ GlobalConfig.RecordServerPort}/${GlobalConfig.recordFileName}`;
console
.
log
(
url
);
loger
.
log
(
url
);
fetch
(
url
,
{
timeout
:
90000
//加载文件超时时间1分30秒
})
...
...
@@ -273,14 +291,6 @@ class RecordPlayBackParse extends Emiter {
position
+=
4
;
//4字节
let
byteData
=
parseBuffer
.
buffer
.
slice
(
position
,
(
position
+
byteLen
));
position
+=
byteLen
;
console
.
log
(
timestamp
,
byteLen
,
byteData
);
/* let messageItem = this._messages[timestamp];
if (!messageItem) {
this._messages[timestamp] = [];//数组存数据,因为有1秒内收到多个消息的情况,timestamp是按秒记录的
messageItem = this._messages[timestamp];
}
messageItem.push({"timestamp": timestamp, "byteData": byteData});*/
this
.
_parseSaveSocketMsgReceivedHandler
(
byteData
,
timestamp
);
//记录最后一个数据的时间戳作为整个录制回放的总时间戳
...
...
@@ -293,12 +303,12 @@ class RecordPlayBackParse extends Emiter {
GlobalConfig
.
recordPlaybackMaxTime
=
this
.
_recordPlaybackMaxTime
;
loger
.
log
(
"录制回放数据解析完成,录制回放的总时间长为->"
,
this
.
_recordPlaybackMaxTime
);
//console.log("_messages", this._messages);
console
.
log
(
"_conferApeMssages"
,
this
.
_conferApeMssages
);
console
.
log
(
"_chatApeMssages"
,
this
.
_chatApeMssages
);
console
.
log
(
"_docApeMssages"
,
this
.
_docApeMssages
);
console
.
log
(
"_whiteApeMssages"
,
this
.
_whiteApeMssages
);
console
.
log
(
"_videoApeMssages"
,
this
.
_videoApeMssages
);
console
.
log
(
"_audioApeMssages"
,
this
.
_audioApeMssages
);
loger
.
log
(
"_conferApeMssages"
,
this
.
_conferApeMssages
);
loger
.
log
(
"_chatApeMssages"
,
this
.
_chatApeMssages
);
loger
.
log
(
"_docApeMssages"
,
this
.
_docApeMssages
);
loger
.
log
(
"_whiteApeMssages"
,
this
.
_whiteApeMssages
);
loger
.
log
(
"_videoApeMssages"
,
this
.
_videoApeMssages
);
loger
.
log
(
"_audioApeMssages"
,
this
.
_audioApeMssages
);
this
.
_emit
(
RecordPlayBackParse
.
CLASS_JOIN_RECORD_PLAYBACK_SUCCESS
,
{
"recordPlaybackMaxTime"
:
this
.
_recordPlaybackMaxTime
});
}
...
...
@@ -311,7 +321,7 @@ class RecordPlayBackParse extends Emiter {
}
else
{
//把时间点对应的数据发送,同一秒内有存在多个数据的情况
for
(
let
i
=
0
;
i
<
msgDataArr
.
length
;
i
++
)
{
this
.
_everSocketMsgReceivedHandler
(
msgDataArr
[
i
].
byteData
,
0
);
this
.
_everSocketMsgReceivedHandler
(
msgDataArr
[
i
].
byteData
,
0
);
}
}
}
...
...
@@ -392,19 +402,21 @@ class RecordPlayBackParse extends Emiter {
messageItem
=
_apeMessages
[
i
];
if
(
messageItem
)
{
keyFrameSeekTime
=
(
this
.
_recordPlaybackTimestamp
-
i
)
loger
.
log
(
"SEEK->APE"
,
ApeConsts
(
_apeId
),
this
.
_recordPlaybackTimestamp
,
"查找到相连的timestamp->"
,
i
,
'需要seek->'
,
keyFrameSeekTime
,
"秒"
);
loger
.
log
(
"SEEK->APE"
,
ApeConsts
(
_apeId
),
this
.
_recordPlaybackTimestamp
,
"查找到相连的timestamp->"
,
i
,
'需要seek->'
,
keyFrameSeekTime
,
"秒"
);
//把时间点对应的数据发送,同一秒内有存在多个数据的情况
for
(
let
k
=
0
;
k
<
messageItem
.
length
;
k
++
)
{
this
.
_everSocketMsgReceivedHandler
(
messageItem
[
k
].
byteData
,
keyFrameSeekTime
);
this
.
_everSocketMsgReceivedHandler
(
messageItem
[
k
].
byteData
,
keyFrameSeekTime
);
}
if
(
_apeId
==
ApeConsts
.
AUDIO_SESSION_ID
||
_apeId
==
ApeConsts
.
VIDEO_SESSION_ID
)
{
this
.
_emit
(
MessageTypes
.
RECORD_PLAYBACK_UPDATE
,
{
"status"
:
SEEK
,
"keyFrameSeekTime"
:
keyFrameSeekTime
});
this
.
_emit
(
MessageTypes
.
RECORD_PLAYBACK_UPDATE
,
{
"status"
:
SEEK
,
"keyFrameSeekTime"
:
keyFrameSeekTime
});
}
return
;
}
}
loger
.
log
(
"SEEK->APE"
,
ApeConsts
(
_apeId
),
this
.
_recordPlaybackTimestamp
,
"没有查找到相连的数据"
);
//this._emit(MessageTypes.RECORD_PLAYBACK_UPDATE,{"status":SEEK,"keyFrameSeek":keyFrameSeek});
}
//查找聊天模块ape关键帧数据,聊天模块比较特殊,消息是累积的,当前时间戳之前的都需要显示
...
...
@@ -416,7 +428,7 @@ class RecordPlayBackParse extends Emiter {
if
(
messageItem
)
{
//把时间点对应的数据发送,同一秒内有存在多个数据的情况
for
(
let
i
=
0
;
i
<
messageItem
.
length
;
i
++
)
{
this
.
_everSocketMsgReceivedHandler
(
messageItem
[
i
].
byteData
,
0
);
this
.
_everSocketMsgReceivedHandler
(
messageItem
[
i
].
byteData
,
0
);
}
}
}
...
...
src/Sass.js
查看文件 @
f7d0602
...
...
@@ -40,8 +40,8 @@ class Sass extends Emiter {
*/
let
url
=
`
http
:
//${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`;
loger
.
log
(
'1.初始化init获取课堂校验信息.'
);
console
.
log
(
url
);
console
.
log
(
_initInfo
);
loger
.
log
(
url
);
loger
.
log
(
_initInfo
);
fetch
(
url
,
{
timeout
:
5000
})
...
...
@@ -88,7 +88,7 @@ class Sass extends Emiter {
// Sass校验开始-->密码校验(如果需要密码)--->MD5校验----------------------------------------------------
passwordAndMd5Checking
(
_param
)
{
loger
.
log
(
'2.开始Sass校验'
);
console
.
log
(
_param
);
loger
.
log
(
_param
);
confInfo
=
_param
;
// 密码校验
if
(
confInfo
.
passwordRequired
===
'true'
||
confInfo
.
passwordRequired
===
true
)
{
...
...
@@ -185,7 +185,7 @@ class Sass extends Emiter {
GlobalConfig.maxAudioChannels=confInfo.maxAudioChannels;
GlobalConfig.maxMediaChannels=confInfo.maxMediaChannels;*/
loger
.
log
(
'MD5校验完成'
);
console
.
log
(
ret
);
loger
.
log
(
ret
);
this
.
_emit
(
Sass
.
SUCCESS
,
ret
);
}
else
{
loger
.
log
(
'MD5校验-失败.'
);
...
...
@@ -252,7 +252,7 @@ class Sass extends Emiter {
var
authId
=
MD5
(
GlobalConfig
.
classId
+
""
+
timestamp
);
//课堂号+时间戳 的字符串,转成MD5
let
url
=
`
http
:
//${GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`;
loger
.
log
(
'5.获取课堂课堂的完整信息 '
);
console
.
log
(
url
);
loger
.
log
(
url
);
fetch
(
url
,
{
timeout
:
5000
})
...
...
src/apes/Ape.js
查看文件 @
f7d0602
...
...
@@ -93,8 +93,7 @@ export default class Ape extends Emiter {
let
regItems
=
regPdu
.
item
;
let
regItemSize
=
regItems
.
length
;
//loger.log(this._session_name + '数据同步消息');
loger
.
log
(
this
.
_session_name
+
'数据同步消息.同步条数'
,
regItemSize
,
"seekTime->"
,
seekTime
);
//loger.log(this._session_name + '数据同步消息.同步条数', regItemSize,"seekTime->",seekTime);
for
(
var
i
=
0
;
i
<
regItemSize
;
++
i
)
{
let
regItem
=
regItems
[
i
];
let
regItemType
=
regItem
.
type
;
...
...
@@ -164,8 +163,8 @@ export default class Ape extends Emiter {
let
tableUpdateData
=
pdu
[
'RCRegistryTableUpdateItemPdu'
].
decode
(
user_data
);
let
tableUpdateItems
=
tableUpdateData
.
items
;
let
tableUpdateItemsLen
=
tableUpdateItems
.
length
;
loger
.
log
(
"RCRegistryTableUpdateItemPdu "
+
tableUpdateItemsLen
);
console
.
log
(
tableUpdateData
);
//loger.log("RCRegistryTableUpdateItemPdu " + tableUpdateItemsLen);
loger
.
log
(
tableUpdateData
);
for
(
let
i
=
0
;
i
<
tableUpdateItemsLen
;
++
i
)
{
let
tableItem
=
tableUpdateItems
[
i
];
...
...
@@ -311,7 +310,7 @@ export default class Ape extends Emiter {
send
(
appPdu
)
{
loger
.
log
(
'Ape发送数据NORMAL PDU'
);
console
.
log
(
appPdu
);
//
console.log(appPdu);
//loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
if
(
GlobalConfig
.
getCurrentStatus
().
code
==
0
||
GlobalConfig
.
getCurrentStatus
().
code
==
1
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_SEND_FAILED_NO_JOIN
);
...
...
@@ -337,7 +336,7 @@ export default class Ape extends Emiter {
// 发送当前APE(session uniform包)
sendUniform
(
appPdu
,
top
)
{
loger
.
log
(
'Ape发送数据UNIFORM PDU'
);
console
.
log
(
appPdu
);
//
console.log(appPdu);
//loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
if
(
GlobalConfig
.
getCurrentStatus
().
code
==
0
||
GlobalConfig
.
getCurrentStatus
().
code
==
1
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_SEND_FAILED_NO_JOIN
);
...
...
@@ -362,7 +361,7 @@ export default class Ape extends Emiter {
sendChatUniform
(
appPdu
,
top
)
{
loger
.
log
(
'Ape发送数据UNIFORM PDU'
);
console
.
log
(
appPdu
);
//
console.log(appPdu);
//loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
if
(
GlobalConfig
.
getCurrentStatus
().
code
==
0
||
GlobalConfig
.
getCurrentStatus
().
code
==
1
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_SEND_FAILED_NO_JOIN
);
...
...
src/apes/AudioApe.js
查看文件 @
f7d0602
...
...
@@ -349,7 +349,7 @@ class AudioApe extends Ape {
}
}
else
{
loger
.
warn
(
"消息是自己发送的或者是消息无效,不需要处理,消息内容如下:"
);
console
.
log
(
unpackChannelInfo
);
loger
.
log
(
unpackChannelInfo
);
}
this
.
_emit
(
MessageTypes
.
AUDIO_UPDATE
,
unpackChannelInfo
);
...
...
@@ -376,7 +376,7 @@ class AudioApe extends Ape {
packPduModel
.
timestamp
=
_param
.
timestamp
||
EngineUtils
.
creatTimestamp
();
packPduModel
.
fromNodeId
=
GlobalConfig
.
nodeId
;
packPduModel
.
toNodeId
=
0
;
console
.
log
(
"packPdu"
,
packPduModel
);
loger
.
log
(
"packPdu"
,
packPduModel
);
return
packPduModel
;
}
...
...
@@ -388,7 +388,7 @@ class AudioApe extends Ape {
}
try
{
let
packChannelInfo
=
pdu
[
'RCAudioChannelInfoPdu'
].
decode
(
itemData
);
console
.
log
(
packChannelInfo
);
loger
.
log
(
packChannelInfo
);
return
packChannelInfo
;
}
catch
(
err
)
{
loger
.
log
(
"unPackPdu error,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
...
...
src/apes/ChatApe.js
查看文件 @
f7d0602
...
...
@@ -65,11 +65,11 @@ class ChatApe extends Ape {
// if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) {
if
(
!
chatSendPdu
.
isPublic
&&
0
!=
chatSendPdu
.
peer
)
{
//发送给制定的人
loger
.
log
(
'发送私聊消息.'
);
//
loger.log('发送私聊消息.');
this
.
send
(
chatSendPdu
);
}
else
{
//发送给所有人
loger
.
log
(
'发送公聊消息.'
);
//
loger.log('发送公聊消息.');
//this.sendUniform(chatSendPdu);
this
.
sendChatUniform
(
chatSendPdu
);
}
...
...
src/apes/ConferApe.js
查看文件 @
f7d0602
...
...
@@ -64,7 +64,7 @@ class ConferApe extends Ape {
_joinSessionHandler
(
_data
)
{
let
nodeInfoRecordPdu
=
this
.
mcu
.
mcuClassInfo
.
self
;
loger
.
log
(
"_joinSessionHandler nodeInfoRecordPdu="
);
console
.
log
(
nodeInfoRecordPdu
);
loger
.
log
(
nodeInfoRecordPdu
);
let
userDataPdu
=
new
pdu
[
'RCNodeInfoUserDataPdu'
];
userDataPdu
.
qq
=
''
;
userDataPdu
.
skype
=
''
;
...
...
@@ -323,7 +323,7 @@ class ConferApe extends Ape {
itemIdx
=
ApeConsts
.
CONFERENCE_OBJ_TABLE_ID
;
// itemIdx=_param.itemIdx;
let
modelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
//loger.log('sendUpdaterClassStatusInfo----2------');
console
.
log
(
modelPdu
);
loger
.
log
(
modelPdu
);
if
(
modelPdu
==
null
)
{
loger
.
log
(
'sendUpdaterClassStatusInfo,参数错误'
);
...
...
@@ -360,7 +360,7 @@ class ConferApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"课堂发送更新数据============"
);
loger
.
log
(
"课堂发送更新数据============"
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
...
...
@@ -420,7 +420,7 @@ class ConferApe extends Ape {
try
{
let
model
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableUpdateHandler'
);
console
.
log
(
model
);
loger
.
log
(
model
);
//处理课堂更新的信息
if
(
model
&&
model
.
classStatusInfo
)
{
...
...
@@ -478,7 +478,7 @@ class ConferApe extends Ape {
loger
.
log
(
"onSendConferRecordRequestHandler"
);
try
{
let
conferRecordSendPdu
=
pdu
[
'RCConferenceRecordRequestPdu'
].
decode
(
_data
);
console
.
log
(
conferRecordSendPdu
);
loger
.
log
(
conferRecordSendPdu
);
}
catch
(
err
)
{
loger
.
warn
(
"onSendConferRecordRequestHandler err"
,
err
.
message
);
}
...
...
src/apes/DocApe.js
查看文件 @
f7d0602
...
...
@@ -212,7 +212,7 @@ class DocApe extends Ape {
//切换文档
documentSwitchDoc
(
paramInfo
){
loger
.
log
(
'切换文档,documentSwitchDoc'
);
console
.
log
(
paramInfo
);
loger
.
log
(
paramInfo
);
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
){
loger
.
warn
(
'documentSwitch失败,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
...
...
@@ -247,7 +247,7 @@ class DocApe extends Ape {
docDataModel
.
visible
=
paramInfo
.
visible
||
false
;
//默认是false
//loger.log('切换文档,当前文档和上一个显示的文档都需要更新状态');
console
.
log
({
"oldDoc"
:
oldDocModel
,
"nowDoc"
:
docDataModel
});
loger
.
log
({
"oldDoc"
:
oldDocModel
,
"nowDoc"
:
docDataModel
});
//更新当前选择的文档
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
...
...
@@ -261,7 +261,7 @@ class DocApe extends Ape {
//文档翻页
documentSwitchPage
(
paramInfo
){
loger
.
log
(
'文档翻页,documentSwitchPage'
);
console
.
log
(
paramInfo
);
loger
.
log
(
paramInfo
);
//console.log(this.docList);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
...
...
@@ -349,7 +349,7 @@ class DocApe extends Ape {
}
loger
.
log
(
'tableInsertHandler 发送给客户端'
);
console
.
log
(
itemDataInfo
);
loger
.
log
(
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
//用添加和更新都统一DOC_UPDATE
}
...
...
@@ -401,7 +401,7 @@ class DocApe extends Ape {
loger
.
log
(
'tableUpdateHandler 设置当前激活的文档id'
);
}
loger
.
log
(
'tableUpdateHandler 发送给客户端'
);
console
.
log
(
itemDataInfo
);
loger
.
log
(
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
}
else
{
...
...
@@ -515,7 +515,7 @@ class DocApe extends Ape {
docModelPdu
.
md5
=
_param
.
md5
||
""
;
//MD5
docModelPdu
.
fileName
=
_param
.
fileName
||
"doc_"
+
_itemIdx
;
//文档的名字
docModelPdu
.
dynamicTS
=
_param
.
dynamicTS
||
"0"
;
//文档上传后返回值中的字段dynamicTransferStatic
console
.
log
(
docModelPdu
);
loger
.
log
(
docModelPdu
);
return
docModelPdu
;
}
...
...
src/apes/MediaModule.js
查看文件 @
f7d0602
...
...
@@ -116,7 +116,7 @@ class MediaModule {
counter
++
;
}
loger
.
log
(
"getFreeMediaChannel"
,
"maxMediaChannel"
,
this
.
maxMediaChannel
,
"counter:"
,
counter
);
console
.
log
(
this
.
mediaChannels
);
loger
.
log
(
this
.
mediaChannels
);
if
(
counter
<
this
.
maxMediaChannel
)
{
return
this
.
MEDIA_OBJ_TABLE_ID
+
(
counter
);
}
...
...
src/apes/VideoApe.js
查看文件 @
f7d0602
...
...
@@ -292,7 +292,7 @@ class VideoApe extends Ape {
}
videoReceivePdu
.
data
=
this
.
_rCArrayBufferUtil
.
uint8ArrayToStr
(
videoReceivePdu
.
data
,
2
);
//开头两个字会乱码
loger
.
log
(
'视频控制消息处理 .'
,
videoReceivePdu
);
console
.
log
(
videoReceivePdu
);
loger
.
log
(
videoReceivePdu
);
//判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
if
(
videoReceivePdu
.
toNodeId
!=
0
&&
videoReceivePdu
.
toNodeId
!=
GlobalConfig
.
nodeId
)
{
...
...
@@ -353,7 +353,7 @@ class VideoApe extends Ape {
}
}
else
{
loger
.
warn
(
"视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:"
);
console
.
log
(
unpackChannelInfo
);
loger
.
log
(
unpackChannelInfo
);
}
...
...
@@ -381,7 +381,7 @@ class VideoApe extends Ape {
packPduModel
.
timestamp
=
_param
.
timestamp
||
0
;
packPduModel
.
fromNodeId
=
GlobalConfig
.
nodeId
;
packPduModel
.
toNodeId
=
0
;
console
.
log
(
packPduModel
);
loger
.
log
(
packPduModel
);
return
packPduModel
;
}
...
...
@@ -393,7 +393,7 @@ class VideoApe extends Ape {
}
try
{
let
videoChannelInfo
=
pdu
[
'RCVideoChannelInfoPdu'
].
decode
(
itemData
);
console
.
log
(
videoChannelInfo
);
loger
.
log
(
videoChannelInfo
);
return
videoChannelInfo
;
}
catch
(
err
)
{
loger
.
log
(
"unPackPdu error,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
...
...
src/apes/WhiteBoardApe.js
查看文件 @
f7d0602
...
...
@@ -25,12 +25,12 @@ import EngineUtils from 'EngineUtils';
let
loger
=
Loger
.
getLoger
(
'WhiteBoardApe'
);
let
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
const
TYPE_BIGHT
=
0
;
//任意线段
const
TYPE_LINE
=
1
;
//直线
const
TYPE_RECT
=
2
;
//矩形
const
TYPE_CIRCLE
=
3
;
//圆形
const
TYPE_TEXT
=
4
;
//文本
let
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
const
TYPE_BIGHT
=
0
;
//任意线段
const
TYPE_LINE
=
1
;
//直线
const
TYPE_RECT
=
2
;
//矩形
const
TYPE_CIRCLE
=
3
;
//圆形
const
TYPE_TEXT
=
4
;
//文本
class
WhiteBoardApe
extends
Ape
{
constructor
()
{
...
...
@@ -41,7 +41,7 @@ class WhiteBoardApe extends Ape {
);
// properties
this
.
annoInfos
=
{};
//储存所有的标注数据
this
.
insertHistory
=
[];
//添加的白板记录,用于撤回操作
this
.
insertHistory
=
[];
//添加的白板记录,用于撤回操作
// 白板延迟
// this._apeDelayed = true;
...
...
@@ -57,24 +57,24 @@ class WhiteBoardApe extends Ape {
_joinSessionHandler
(
_data
)
{
loger
.
log
(
"RCPDU_SESSION_JOIN_RESPONSE"
);
this
.
insertHistory
=
[];
this
.
insertHistory
=
[];
}
/////////////发送数据操作//////////////////////////////////////////////////////
// 添加标注,发送信息
sendInsetAnnotaion
(
_param
){
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
)){
sendInsetAnnotaion
(
_param
)
{
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
))
{
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
itemIdx
=
EngineUtils
.
creatSoleNumberFromTimestamp
();
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
if
(
whiteBoardModelPdu
==
null
){
itemIdx
=
EngineUtils
.
creatSoleNumberFromTimestamp
();
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
if
(
whiteBoardModelPdu
==
null
)
{
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//console.log(whiteBoardModelPdu);
...
...
@@ -82,10 +82,10 @@ class WhiteBoardApe extends Ape {
this
.
insertHistory
.
push
(
whiteBoardModelPdu
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
whiteBoardModelPdu
.
toArrayBuffer
();
tableItemPdu
.
itemData
=
whiteBoardModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableInsertItemPdu'
];
...
...
@@ -108,39 +108,42 @@ class WhiteBoardApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"添加白板数据=====itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
loger
.
log
(
"添加白板数据=====itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//撤销上一步
sendGotoPrev
(){
sendGotoPrev
()
{
loger
.
log
(
"白板返回上一步"
);
if
(
this
.
insertHistory
==
null
||
this
.
insertHistory
.
length
<
1
)
{
if
(
this
.
insertHistory
==
null
||
this
.
insertHistory
.
length
<
1
)
{
loger
.
warn
(
"无法继续上一步操作,已经没有可以撤销的数据"
);
return
;
}
console
.
log
(
this
.
insertHistory
);
//loger
.log(this.insertHistory);
this
.
sendDeleteAnnotaion
(
this
.
insertHistory
.
pop
());
}
//删除当前页码的所有标注
sendDeleteCurPageAnnotation
(
_param
){
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
loger
.
log
(
"sendDeleteCurPageAnnotation 删除当前页面上的标注"
,
key
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
sendDeleteCurPageAnnotation
(
_param
)
{
for
(
let
key
in
this
.
annoInfos
)
{
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
)
{
loger
.
log
(
"sendDeleteCurPageAnnotation 删除当前页面上的标注"
,
key
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
}
//删除所有标注
sendDeleteAllAnnotation
(
_param
){
for
(
let
key
in
this
.
annoInfos
){
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
sendDeleteAllAnnotation
(
_param
)
{
for
(
let
key
in
this
.
annoInfos
)
{
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
//删除标注,发送信息
sendDeleteAnnotaion
(
_param
){
if
(
_param
==
null
){
sendDeleteAnnotaion
(
_param
)
{
if
(
_param
==
null
)
{
loger
.
warn
(
"要删除的数据不存在"
);
return
;
}
...
...
@@ -149,7 +152,7 @@ class WhiteBoardApe extends Ape {
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];
// repeated uint32 item_idx = 2;
tableDeleteItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_DELETE_PDU
;
//
tableDeleteItemPdu
.
itemIdx
=
parseInt
(
_param
.
itemIdx
);
//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
tableDeleteItemPdu
.
itemIdx
=
parseInt
(
_param
.
itemIdx
);
//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
...
...
@@ -165,33 +168,33 @@ class WhiteBoardApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"白板发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
loger
.
log
(
"白板发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//更新标注
sendUpdaterAnnotaion
(
_param
){
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
)){
sendUpdaterAnnotaion
(
_param
)
{
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
))
{
loger
.
log
(
'sendUpdaterAnnotaion失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
itemIdx
=
_param
.
itemIdx
;
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
itemIdx
=
_param
.
itemIdx
;
let
whiteBoardModelPdu
=
this
.
packPdu
(
_param
,
itemIdx
);
//console.log(whiteBoardModelPdu);
if
(
whiteBoardModelPdu
==
null
)
{
if
(
whiteBoardModelPdu
==
null
)
{
loger
.
log
(
'sendInsetAnnotaion失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
tableItemPdu
.
itemIdx
=
itemIdx
;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
registerObjId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
tableItemPdu
.
itemData
=
whiteBoardModelPdu
.
toArrayBuffer
();
tableItemPdu
.
registerObjId
=
ApeConsts
.
WHITEBOARD_OBJ_TABLE_ID
;
tableItemPdu
.
itemData
=
whiteBoardModelPdu
.
toArrayBuffer
();
//updater
...
...
@@ -216,50 +219,42 @@ class WhiteBoardApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
console
.
log
(
"白板发送更新数据===============22"
);
this
.
sendUniform
(
adapterPdu
,
true
);
loger
.
log
(
"白板发送更新数据===============22"
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
/* whiteboardMsgComingHandler(_data) {
//flash RCConferenceSendDataRequestPdu
//loger.warn('whiteboardMsgComingHandler needs to be handled.');
//const recordInfo = pdu['RCWhiteboardDataRequestPdu'].decode(pdu);
//loger.log("whiteboardMsgComingHandler",recordInfo);
let receiveInfo = pdu['RCConferenceSendDataRequestPdu'].decode(_data);
loger.log("whiteboardMsgComingHandler",receiveInfo);
}*/
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableInsertHandler'
);
console
.
log
(
whiteBoardModel
);
if
(
whiteBoardModel
){
if
(
GlobalConfig
.
activeDocId
==
whiteBoardModel
.
parentId
&&
GlobalConfig
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
){
loger
.
log
(
'WHITEBOARD_ANNOTAION_INSERT 显示到界面上'
,
whiteBoardModel
);
loger
.
log
(
whiteBoardModel
);
if
(
whiteBoardModel
)
{
if
(
GlobalConfig
.
activeDocId
==
whiteBoardModel
.
parentId
&&
GlobalConfig
.
activeDocCurPage
==
whiteBoardModel
.
curPageNo
)
{
loger
.
log
(
'WHITEBOARD_ANNOTAION_INSERT 显示到界面上'
,
whiteBoardModel
);
//this._emit(MessageTypes.WHITEBOARD_ANNOTAION_INSERT,whiteBoardModel);
this
.
insertAandShowAnnotaion
(
whiteBoardModel
);
}
}
}
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
let
whiteBoardModel
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
loger
.
log
(
'tableUpdateHandler'
);
console
.
log
(
whiteBoardModel
);
if
(
whiteBoardModel
&&
whiteBoardModel
.
parentId
==
GlobalConfig
.
activeDocId
&&
whiteBoardModel
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
loger
.
log
(
whiteBoardModel
);
if
(
whiteBoardModel
&&
whiteBoardModel
.
parentId
==
GlobalConfig
.
activeDocId
&&
whiteBoardModel
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
)
{
this
.
updateAandShowAnnotaion
();
}
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
tableDeleteHandler
(
object_id
,
tableDeleteData
)
{
// console.log("白板收到数据,tableDeleteHandler object_id="+object_id);//((18<< 16) + 1)=1179649
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
){
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
){
if
(
this
.
annoInfos
[
itemIdxs
[
i
]]){
loger
.
log
(
"删除白板数据:"
,
itemIdxs
[
i
]);
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
)
{
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
if
(
this
.
annoInfos
[
itemIdxs
[
i
]])
{
loger
.
log
(
"删除白板数据:"
,
itemIdxs
[
i
]);
//this._emit(MessageTypes.WHITEBOARD_ANNOTAION_DELETE,{ "itemIdx":itemIdxs[i]});
delete
this
.
annoInfos
[
itemIdxs
[
i
]];
}
...
...
@@ -267,79 +262,72 @@ class WhiteBoardApe extends Ape {
}
this
.
updateAandShowAnnotaion
();
}
//文档更新,白板也要更新
docUpdateHandler
(
_data
){
docUpdateHandler
(
_data
)
{
loger
.
log
(
"白板收到文档更新的消息docUpdateHandler"
);
console
.
log
(
_data
);
loger
.
log
(
_data
);
//如果切换了文档或翻页,清除之前的添加步骤记录
if
(
_data
.
action
==
ApeConsts
.
DOC_ACTION_SWITCH_DOC
||
_data
.
action
==
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
){
this
.
insertHistory
=
[];
if
(
_data
.
action
==
ApeConsts
.
DOC_ACTION_SWITCH_DOC
||
_data
.
action
==
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
)
{
this
.
insertHistory
=
[];
}
this
.
updateAandShowAnnotaion
();
}
//删除白板数据
docDeleteHandler
(
_parentId
){
loger
.
log
(
"白板收到文档删除的消息docDeleteHandler"
,
_parentId
);
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_parentId
){
loger
.
log
(
"文档删除,白板数据也删除,itemIdx:"
+
key
,
"_parentId:"
,
_parentId
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
docDeleteHandler
(
_parentId
)
{
loger
.
log
(
"白板收到文档删除的消息docDeleteHandler"
,
_parentId
);
for
(
let
key
in
this
.
annoInfos
)
{
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
_parentId
)
{
loger
.
log
(
"文档删除,白板数据也删除,itemIdx:"
+
key
,
"_parentId:"
,
_parentId
);
this
.
sendDeleteAnnotaion
({
"itemIdx"
:
key
});
}
}
}
//增量添加标注
insertAandShowAnnotaion
(
_item
){
let
annotaionItems
=
[
_item
];
var
updateObj
=
{
"isFresh"
:
false
,
"annotaionItems"
:
annotaionItems
insertAandShowAnnotaion
(
_item
)
{
let
annotaionItems
=
[
_item
];
var
updateObj
=
{
"isFresh"
:
false
,
"annotaionItems"
:
annotaionItems
};
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
annotaionItems
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
annotaionItems
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
//整体更新并且显示标注
updateAandShowAnnotaion
(){
let
annotaionItems
=
[];
for
(
let
key
in
this
.
annoInfos
){
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
updateAandShowAnnotaion
()
{
let
annotaionItems
=
[];
for
(
let
key
in
this
.
annoInfos
)
{
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
)
{
annotaionItems
.
push
(
item
);
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler itemIdx:"
,
item
.
itemIdx
,
"doc itemIdx:"
,
GlobalConfig
.
activeDocId
,
"curPageNo:"
,
GlobalConfig
.
activeDocCurPage
);
}
else
{
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler itemIdx:"
,
item
.
itemIdx
,
"doc itemIdx:"
,
GlobalConfig
.
activeDocId
,
"curPageNo:"
,
GlobalConfig
.
activeDocCurPage
);
}
else
{
//loger.log("不显示白板数据docUpdateHandler",item);
}
}
var
updateObj
=
{
"isFresh"
:
true
,
"annotaionItems"
:
annotaionItems
var
updateObj
=
{
"isFresh"
:
true
,
"annotaionItems"
:
annotaionItems
};
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
annotaionItems
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
annotaionItems
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
///////白板数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
){
/* required uint32 type= 1;//白板类型
required uint32 id= 2;//id 每一次绘制的唯一标识
required uint32 initiator=3; //绘制来自谁
optional string pointGroup=4; //坐标点集数组的JSON字符串
optional string color= 5 [default = "#000000"]; //颜色
optional uint32 thickness= 6 ;//线条粗细
optional uint32 radius= 7;//园的半径
optional uint32 fontSize= 8;//字体大小
optional uint32 fontName= 9;//字体名称
optional uint32 text= 10;//文本内容*/
packPdu
(
_param
,
_itemIdx
)
{
//验证坐标点集合数组是否合法
if
(
_param
.
pointGroup
==
null
||
_param
.
pointGroup
.
length
<
1
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
if
(
_param
.
pointGroup
==
null
||
_param
.
pointGroup
.
length
<
1
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
//判断type类型,根据type设置不同的参数
let
whiteBoardModelPdu
=
new
pdu
[
'RCWhiteBoardDataModelPdu'
];
switch
(
_param
.
type
){
let
whiteBoardModelPdu
=
new
pdu
[
'RCWhiteBoardDataModelPdu'
];
switch
(
_param
.
type
)
{
case
TYPE_BIGHT
:
break
;
case
TYPE_LINE
:
...
...
@@ -347,12 +335,12 @@ class WhiteBoardApe extends Ape {
case
TYPE_RECT
:
break
;
case
TYPE_CIRCLE
:
whiteBoardModelPdu
.
radius
=
parseInt
(
_param
.
radius
);
whiteBoardModelPdu
.
radius
=
parseInt
(
_param
.
radius
);
break
;
case
TYPE_TEXT
:
whiteBoardModelPdu
.
fontSize
=
parseInt
(
_param
.
fontSize
);
whiteBoardModelPdu
.
fontName
=
_param
.
fontName
||
null
;
whiteBoardModelPdu
.
text
=
_param
.
text
||
null
;
whiteBoardModelPdu
.
fontSize
=
parseInt
(
_param
.
fontSize
);
whiteBoardModelPdu
.
fontName
=
_param
.
fontName
||
null
;
whiteBoardModelPdu
.
text
=
_param
.
text
||
null
;
break
;
default
:
//其它类型不做处理
...
...
@@ -360,33 +348,34 @@ class WhiteBoardApe extends Ape {
break
;
}
//下面4个是必须的参数
whiteBoardModelPdu
.
type
=
_param
.
type
;
whiteBoardModelPdu
.
itemIdx
=
_itemIdx
;
whiteBoardModelPdu
.
initiator
=
GlobalConfig
.
nodeId
;
whiteBoardModelPdu
.
type
=
_param
.
type
;
whiteBoardModelPdu
.
itemIdx
=
_itemIdx
;
whiteBoardModelPdu
.
initiator
=
GlobalConfig
.
nodeId
;
/* whiteBoardModelPdu.parentId=_param.parentId||0;
whiteBoardModelPdu.curPage=_param.curPage||1;*/
whiteBoardModelPdu
.
parentId
=
GlobalConfig
.
activeDocId
;
//当前激活的文档id
whiteBoardModelPdu
.
curPageNo
=
GlobalConfig
.
activeDocCurPage
;
//当前激活的文档页码
whiteBoardModelPdu
.
parentId
=
GlobalConfig
.
activeDocId
;
//当前激活的文档id
whiteBoardModelPdu
.
curPageNo
=
GlobalConfig
.
activeDocCurPage
;
//当前激活的文档页码
whiteBoardModelPdu
.
pointGroup
=
EngineUtils
.
arrayToJsonString
(
_param
.
pointGroup
);
whiteBoardModelPdu
.
color
=
_param
.
color
||
"#000000"
;
whiteBoardModelPdu
.
pointGroup
=
EngineUtils
.
arrayToJsonString
(
_param
.
pointGroup
);
whiteBoardModelPdu
.
color
=
_param
.
color
||
"#000000"
;
return
whiteBoardModelPdu
;
}
unPackPdu
(
owner
,
itemIdx
,
itemData
){
try
{
unPackPdu
(
owner
,
itemIdx
,
itemData
)
{
try
{
loger
.
log
(
"白板收到数据===unPackPdu "
);
let
whiteBoardModelPdu
=
pdu
[
'RCWhiteBoardDataModelPdu'
].
decode
(
itemData
);
let
whiteBoardModelPdu
=
pdu
[
'RCWhiteBoardDataModelPdu'
].
decode
(
itemData
);
//console.log(whiteBoardModelPdu);
//loger.log(whiteBoardModelPdu);
let
_pointGroup
=
EngineUtils
.
arrayFromJsonString
(
whiteBoardModelPdu
.
pointGroup
);
whiteBoardModelPdu
.
pointGroup
=
_pointGroup
;
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
);
}
catch
(
err
)
{
loger
.
log
(
"unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
}
return
null
;
}
...
...
src/mcu.js
查看文件 @
f7d0602
...
...
@@ -46,7 +46,7 @@ class MCU extends Emiter {
_sendJoinClassRequest
(){
//const classInfo = this.classInfo;
loger
.
log
(
'MCU-发送加入课堂请求.'
);
console
.
log
(
this
.
classInfo
);
loger
.
log
(
this
.
classInfo
);
var
descriptorPdu
=
new
pdu
[
'RCConferenceDescriptorPdu'
];
descriptorPdu
.
id
=
this
.
classInfo
.
classId
;
descriptorPdu
.
name
=
this
.
classInfo
.
className
||
""
;
...
...
@@ -132,7 +132,7 @@ class MCU extends Emiter {
// let _mcuConfDesc=new pdu['RCConferenceDescriptorPdu'].decode(mcuConfDesc);
loger
.
log
(
'_updateMCUConfInfoDescription.'
);
//let classDescription=new pdu['RCConferenceDescriptorPdu'].decode(_data);
console
.
log
(
_data
);
loger
.
log
(
_data
);
//let info = this.mcuClassInfo.info;
//info._conference_name = ArrayBufferUtil.uint8ArrayToStr(mcuConfDesc.name, 0);
//info._capacity = mcuConfDesc.capacity;
...
...
@@ -170,7 +170,7 @@ class MCU extends Emiter {
// 主动建立MCU连接
joinMCU
(
_classInfo
)
{
loger
.
log
(
'开始建立EverSocket通道.'
);
console
.
log
(
_classInfo
);
loger
.
log
(
_classInfo
);
_classInfo
.
classId
=
parseInt
(
_classInfo
.
classId
);
// classId 必须整形
this
.
classInfo
=
_classInfo
;
// 创建刷新nodeId
...
...
请
注册
或
登录
后发表评论