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
f26ebb586471167567106a5ad87983e46609deea
f26ebb58
1 parent
81a92811
1.增加文档删除的Sass接口,Sass删除文档成功之后再同步到mcu
2.文档的监听事件统一为DOC_UPDATE,减少应用层事件监听
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
123 行增加
和
26 行删除
dist/McuClient.js
src/EngineEntrance.js
src/MessageTypes.js
src/Sass.js
src/apes/DocApe.js
src/apes/WhiteBoardApe.js
dist/McuClient.js
0 → 100644
查看文件 @
f26ebb5
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
f26ebb5
...
...
@@ -59,8 +59,9 @@ export default class MessageEntrance extends Emiter {
_sass
.
on
(
'*'
,
(
type
,
data
)
=>
this
.
_emit
(
type
,
data
));
_sass
.
on
(
_sass
.
SUCCESS
,
this
.
_sassVerifySuccessHandler
.
bind
(
this
));
_sass
.
on
(
_sass
.
CLASS_INIT_SUCCESS
,
this
.
_sassInitSuccessHandler
.
bind
(
this
));
_sass
.
on
(
_sass
.
CLASS_GET_CLASS_DETAIL
,
this
.
_h5SassGetClassDetailSuccessHandler
.
bind
(
this
));
_sass
.
on
(
_sass
.
CLASS_GET_CLASS_PARAM
,
this
.
_h5SassGetClassParaSuccessHandler
);
_sass
.
on
(
_sass
.
CLASS_GET_CLASS_DETAIL
,
this
.
_sassGetClassDetailSuccessHandler
.
bind
(
this
));
_sass
.
on
(
_sass
.
CLASS_GET_CLASS_PARAM
,
this
.
_sassGetClassParaSuccessHandler
.
bind
(
this
));
_sass
.
on
(
_sass
.
DELETE_DOCUMENT_SUCCESS
,
this
.
_sassDeleteDocumentSuccess
.
bind
(
this
));
// 底层MCU消息层
_mcu
=
Mcu
;
...
...
@@ -113,7 +114,7 @@ export default class MessageEntrance extends Emiter {
//whiteBoradApe
this
.
sendInsertAnnotaion
=
this
.
_sendInsertAnnotaion
;
this
.
sendDeleteAnnotaion
=
this
.
_sendDeleteAnnotaion
;
//
this.sendDeleteAnnotaion=this._sendDeleteAnnotaion;
this
.
sendDeleteAllAnnotation
=
this
.
_sendDeleteAllAnnotation
;
this
.
sendGotoPrev
=
this
.
_sendGotoPrev
;
...
...
@@ -121,8 +122,8 @@ export default class MessageEntrance extends Emiter {
this
.
sendDocumentUpload
=
this
.
_sendDocumentUpload
;
//上传文档
this
.
sendDocumentSwitchDoc
=
this
.
_sendDocumentSwitchDoc
;
//切换文档
this
.
sendDocumentSwitchPage
=
this
.
_sendDocumentSwitchPage
;
//翻页
this
.
sendDocumentDelete
=
this
.
_sendDocumentDelete
;
//删除文档
this
.
sendDocumentDeleteAll
=
this
.
_documentDeleteAll
;
//删除所有文档
this
.
sendDocumentDelete
=
this
.
_sassDeleteDocument
;
//删除文档,先通过Sass删除,sass删除成功之后再同步mcu
//this.sendDocumentDeleteAll= this._documentDeleteAll;//删除所有文档
this
.
sendDocumentCommand
=
this
.
_sendDocumentCommand
;
//操作文档(翻页、缩放、滚动...)
}
...
...
@@ -147,6 +148,7 @@ export default class MessageEntrance extends Emiter {
return
GlobalConfig
.
getClassDetail
();
}
//Sass
//初始化
_init
(
_param
,
_onSuccess
,
_mcuErrorCallBack
){
_initSuccessCallBackFun
=
_onSuccess
;
...
...
@@ -155,13 +157,13 @@ export default class MessageEntrance extends Emiter {
//判断传入的参数是否存在
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
)
||
_onSuccess
==
null
||
_mcuErrorCallBack
==
null
){
loger
.
error
(
'init初始化失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_CLASS_INIT_PA
E
AM
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_CLASS_INIT_PA
R
AM
);
return
;
}
//判断必要的参数字段值
if
(
_param
.
classId
==
null
||
isNaN
(
_param
.
classId
)
||
_param
.
portal
==
null
||
_param
.
portal
==
""
){
loger
.
error
(
'init初始化失败'
,
_param
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_CLASS_INIT_PA
E
AM
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_CLASS_INIT_PA
R
AM
);
return
;
}
loger
.
log
(
'init'
,
_param
);
...
...
@@ -201,16 +203,6 @@ export default class MessageEntrance extends Emiter {
_sass
.
passwordAndMd5Checking
(
GlobalConfig
.
getClassInfo
());
}
}
// 离开会议
_leaveClass
()
{
if
(
_confer_ape
){
_confer_ape
.
leaveClass
();
}
if
(
_mcu
){
_mcu
.
leaveMCU
();
GlobalConfig
.
setCurrentStatus
(
GlobalConfig
.
statusCode_3
);
}
}
// 用classId向SASS平台获取入会验证信息成功
_sassInitSuccessHandler
(
_data
)
{
...
...
@@ -278,7 +270,7 @@ export default class MessageEntrance extends Emiter {
}
//获取会议所有参数
_
h5S
assGetClassDetailSuccessHandler
(
_data
){
_
s
assGetClassDetailSuccessHandler
(
_data
){
loger
.
log
(
'获取getClassDetail完成.'
);
/* {
"cycle": 0,
...
...
@@ -306,7 +298,7 @@ export default class MessageEntrance extends Emiter {
}
//获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getClassParam.do
_
h5S
assGetClassParaSuccessHandler
(
_data
){
_
s
assGetClassParaSuccessHandler
(
_data
){
loger
.
log
(
'获取api/meeting/detail.do完成.'
);
//包含整个会议最全的信息,储存数据
...
...
@@ -399,6 +391,32 @@ export default class MessageEntrance extends Emiter {
}
}
//Sass删除文档数据
_sassDeleteDocument
(
_param
){
//判断传入的参数是否存在
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
)){
loger
.
error
(
'sassDeleteDocument失败,参数错误'
,
_param
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_DOC_DELETE_FAILED_PARAM
);
return
;
}
//判断必要的参数字段值
if
(
_param
.
itemIdx
==
null
||
isNaN
(
_param
.
itemIdx
)
||
_param
.
docId
==
null
||
_param
.
docId
==
""
){
loger
.
error
(
'sassDeleteDocument失败'
,
_param
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_DOC_DELETE_FAILED_PARAM
);
return
;
}
loger
.
log
(
'_sassDeleteDocument'
,
_param
);
if
(
_sass
){
_sass
.
sassDeleteDocument
(
_param
);
}
}
//Sass删除文档成功之后,同步删除MCU数据
_sassDeleteDocumentSuccess
(
_param
){
loger
.
log
(
'sassDeleteDocumentSuccess'
,
_param
);
this
.
_sendDocumentDelete
(
_param
);
}
//ConferApe
//开始上课
_sendStartClass
(
_param
){
...
...
@@ -418,7 +436,16 @@ export default class MessageEntrance extends Emiter {
_confer_ape
.
closeClass
(
_param
);
}
}
// 离开会议
_leaveClass
()
{
if
(
_confer_ape
){
_confer_ape
.
leaveClass
();
}
if
(
_mcu
){
_mcu
.
leaveMCU
();
GlobalConfig
.
setCurrentStatus
(
GlobalConfig
.
statusCode_3
);
}
}
//ChatApe
// 发送聊天消息
...
...
src/MessageTypes.js
查看文件 @
f26ebb5
...
...
@@ -67,7 +67,7 @@ MessageTypes.MCU_ERROR ="mcuError";//MCU错误
//---------------错误消息 ErrorCode 定义-------------------------------------------------
//会议初始化失败的几种情况
MessageTypes
.
ERR_CLASS_INIT_PA
E
AM
=
100
;
//初始化参数错误
MessageTypes
.
ERR_CLASS_INIT_PA
R
AM
=
100
;
//初始化参数错误
MessageTypes
.
ERR_CLASS_INIT_NETWORK
=
101
;
//初始化网络错误
MessageTypes
.
ERR_CLASS_INIT_PROTOCOL
=
102
;
//初始化协议错误
MessageTypes
.
ERR_CLASS_INIT_FAILED
=
103
;
//初始化验证失败
...
...
@@ -94,6 +94,10 @@ MessageTypes.ERR_GET_CLASS_PARAML=301;//获取ClassParam失败
MessageTypes
.
ERR_APE_SEND_FAILED_NO_JOIN
=
500
;
//APE在sdk为初始化或未加入会议之前调用发送数据接口
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
=
501
;
//APE在接口调用时参数错误
//DOC
MessageTypes
.
ERR_DOC_DELETE_FAILED
=
600
;
//删除文档失败
MessageTypes
.
ERR_DOC_DELETE_FAILED_PARAM
=
601
;
//删除文档失败,参数错误
MessageTypes
.
ERR_NETWORK
=
10000
;
//网络错误
MessageTypes
.
ERR_UNKNOWN
=
10001
;
//未知错误
...
...
@@ -101,7 +105,7 @@ MessageTypes.ERR_SOCKET_DISCONNECT=20000;//MCU断开连接,已经离开会议
//---------------错误消息 Error Reson 定义-------------------------------------------------
MessageTypes
.
ErrorReson
=
{};
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_CLASS_INIT_PA
E
AM
]
=
"初始化参数错误"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_CLASS_INIT_PA
R
AM
]
=
"初始化参数错误"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_CLASS_INIT_NETWORK
]
=
"初始化网络错误"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_CLASS_INIT_PROTOCOL
]
=
"初始化协议错误"
;
...
...
@@ -123,13 +127,18 @@ MessageTypes.ErrorReson[MessageTypes.ERR_CLASS_PASSWORD_WRONG]="密码错误";
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_CLASS_JOIN_CONFILICT
]
=
"已经在其它地方登陆"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_GET_CLASS_DETAIL
=
300
]
=
"获取classDetail失败"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_GET_CLASS_DETAIL
]
=
"获取classDetail失败"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_GET_CLASS_PARAML
]
=
"获取ClassParam失败"
;
//APE
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_APE_SEND_FAILED_NO_JOIN
]
=
"APE在sdk为初始化或未加入会议之前调用发送数据接口"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
]
=
"APE在接口调用时参数错误"
;
//DOC
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_DOC_DELETE_FAILED
]
=
"删除文档失败"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_DOC_DELETE_FAILED_PARAM
]
=
"删除文档失败,参数错误"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_NETWORK
]
=
"网络错误"
;
MessageTypes
.
ErrorReson
[
MessageTypes
.
ERR_UNKNOWN
]
=
"未知错误"
;
...
...
src/Sass.js
查看文件 @
f26ebb5
...
...
@@ -285,11 +285,63 @@ class Sass extends Emiter {
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_GET_CLASS_PARAML
);
});
}
//删除文档
/*
删除课堂中的文档,即删除课堂与文档的关联
/api/document/deleteRelation.do
参数
docId 文档的唯一id
classId 课堂号
timestamp 时间戳
authId md5(docId+classId+timestamp)
返回 (application/json):
0 成功, 1 验证信息错误
*/
sassDeleteDocument
(
_param
){
var
timestamp
=
new
Date
().
getTime
();
var
authId
=
MD5
(
_param
.
docId
+
""
+
_param
.
classId
+
""
+
timestamp
);
// docId+classId+timestamp的字符串,转成MD5
let
url
=
`
http
:
//${confInfo.portal}/3m/api/document/deleteRelation.do?docId=${_param.docId}&classId=${confInfo.classId}×tamp=${timestamp}&authId=${authId}`;
loger
.
log
(
'sassDeleteDocument'
,
url
);
fetch
(
url
,
{
timeout
:
5000
})
.
then
(
ret
=>
{
if
(
ret
.
ok
)
{
return
ret
.
json
();
}
else
{
loger
.
error
(
`
sassDeleteDocument
-
网络异常
.
状态码
:
$
{
ret
.
status
}
`
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_DOC_DELETE_FAILED
);
throw
''
;
}
})
.
then
(
ret
=>
{
if
(
ret
.
code
===
0
)
{
loger
.
log
(
'sassDeleteDocument 完成'
);
this
.
_emit
(
Sass
.
DELETE_DOCUMENT_SUCCESS
,
_param
);
}
else
{
loger
.
warn
(
'sassDeleteDocument 失败.'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_DOC_DELETE_FAILED
);
}
})
.
catch
(
err
=>
{
loger
.
error
(
`
sassDeleteDocument
异常
.
状态码
:
$
{
err
}
`
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_DOC_DELETE_FAILED
);
});
}
}
Sass
.
prototype
.
SUCCESS
=
Sass
.
SUCCESS
=
'Sass.success'
;
Sass
.
prototype
.
CLASS_INIT_SUCCESS
=
Sass
.
CLASS_INIT_SUCCESS
=
'sass.class.init.success'
;
Sass
.
prototype
.
CLASS_GET_CLASS_PARAM
=
Sass
.
CLASS_GET_CLASS_PARAM
=
'class.getClassParam.message'
;
Sass
.
prototype
.
CLASS_GET_CLASS_DETAIL
=
Sass
.
CLASS_GET_CLASS_DETAIL
=
'class.getClassDetail.message'
;
Sass
.
prototype
.
DELETE_DOCUMENT_SUCCESS
=
Sass
.
DELETE_DOCUMENT_SUCCESS
=
'class.deleteDocumentSuccess.message'
;
//删除文档成功
export
default
new
Sass
;
...
...
src/apes/DocApe.js
查看文件 @
f26ebb5
...
...
@@ -307,7 +307,14 @@ class DocApe extends Ape {
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
loger
.
log
(
'tableInsertHandler'
,
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPLOAD
,
itemDataInfo
);
//this._emit(MessageTypes.DOC_UPLOAD,itemDataInfo);
if
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
){
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
}
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
//用添加和更新都统一DOC_UPDATE
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
...
...
src/apes/WhiteBoardApe.js
查看文件 @
f26ebb5
...
...
@@ -285,6 +285,7 @@ class WhiteBoardApe extends Ape {
"isFresh"
:
false
,
"annotaionItems"
:
annotaionItems
}
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
updateObj
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
//整体更新并且显示标注
...
...
@@ -294,7 +295,7 @@ class WhiteBoardApe extends Ape {
let
item
=
this
.
annoInfos
[
key
];
if
(
item
&&
item
.
parentId
==
GlobalConfig
.
activeDocId
&&
item
.
curPageNo
==
GlobalConfig
.
activeDocCurPage
){
annotaionItems
.
push
(
item
);
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler
"
,
item
);
loger
.
log
(
"显示和文档对应的白板数据docUpdateHandler
itemIdx:"
,
item
.
itemIdx
,
"doc itemIdx:"
,
GlobalConfig
.
activeDocId
,
"curPageNo:"
,
GlobalConfig
.
activeDocCurPage
);
}
else
{
loger
.
log
(
"不显示白板数据docUpdateHandler"
,
item
);
}
...
...
@@ -303,6 +304,7 @@ class WhiteBoardApe extends Ape {
"isFresh"
:
true
,
"annotaionItems"
:
annotaionItems
}
loger
.
log
(
"WHITEBOARD_ANNOTATION_UPDATE"
,
updateObj
.
length
);
this
.
_emit
(
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
,
updateObj
);
}
...
...
@@ -364,7 +366,7 @@ class WhiteBoardApe extends Ape {
}
unPackPdu
(
owner
,
itemIdx
,
itemData
){
try
{
console
.
log
(
"白板收到数据===unPackPdu "
);
loger
.
log
(
"白板收到数据===unPackPdu "
);
let
whiteBoardModelPdu
=
pdu
[
'RCWhiteBoardDataModelPdu'
].
decode
(
itemData
);
//console.log(whiteBoardModelPdu);
//loger.log(whiteBoardModelPdu);
...
...
请
注册
或
登录
后发表评论