diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index fdbcd86..81e1449 100644
--- a/src/EngineEntrance.js
+++ b/src/EngineEntrance.js
@@ -35,7 +35,6 @@ import QuestionApe from 'apes/QuestionApe';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
-let _sdkInfo = {"version": "v1.60.0.20170729", "author": "www.3mang.com"};
//APE
let _sass;
@@ -58,8 +57,9 @@ export default class MessageEntrance extends Emiter {
constructor() {
super();
//sdk 信息
- this.sdkInfo = _sdkInfo;
- loger.warn(this.sdkInfo);
+ GlobalConfig.sdkVersion="v1.61.0.20170729";
+ loger.warn("sdkVersion:"+GlobalConfig.sdkVersion);
+
//获取设备和系统信息
SystemConfig.getSystemInfo();
diff --git a/src/apes/ConferApe.js b/src/apes/ConferApe.js
index c18db0a..e8ed472 100644
--- a/src/apes/ConferApe.js
+++ b/src/apes/ConferApe.js
@@ -26,6 +26,7 @@ class ConferApe extends Ape {
);
this.rosters = {}; //用户列表
+ this.rosterLen=0;//当前课堂人数
this.timerCounter = new TimerCounter(); //计时器
//第三方消息控制 parent和Iframe直接的通讯
@@ -149,6 +150,7 @@ class ConferApe extends Ape {
nodeInfoRecordPdu.explorer = GlobalConfig.explorer;
nodeInfoRecordPdu.explorerVersion = GlobalConfig.explorerVersion;
nodeInfoRecordPdu.os = GlobalConfig.os;
+ nodeInfoRecordPdu.sdkVersion=GlobalConfig.sdkVersion||"未知版本";
return nodeInfoRecordPdu;
}
@@ -841,9 +843,9 @@ class ConferApe extends Ape {
//loger.log("自己加入课堂的消息->",nodeId,"role-->", nodeData.role, ApeConsts.userTypes[nodeData.role]);
//自己加入的时候,需要做一下判断操作,如果满足以下3个条件就要暂停课堂:
// 1.当前课堂只有自己;2.自己的身份不是host;3当前的课堂状态为(CLASS_STATUS_STARTED= 1;//直播中)
- let rosterLen = Object.keys(this.rosters).length;
- GlobalConfig.rosterNumber = rosterLen;//记录当前的总人数
- if (rosterLen < 1 && !GlobalConfig.isHost && GlobalConfig.classStatus == ApeConsts.CLASS_STATUS_STARTED) {
+ this.rosterLen = Object.keys(this.rosters).length;
+ GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
+ if (this.rosterLen < 1 && !GlobalConfig.isHost && GlobalConfig.classStatus == ApeConsts.CLASS_STATUS_STARTED) {
loger.warn("当前课堂没有老师->暂停课堂");
this.pauseClass({isForce: true});
this.stopRecord(true);
@@ -910,17 +912,21 @@ class ConferApe extends Ape {
loger.log("NR_INVISIBLE");
return;
}
- if (!rosterExists) {
+ if (!rosterExists){
+ this.rosterLen=Object.keys(this.rosters).length;
+ GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
+ newNodeData.rosterLen=this.rosterLen;
loger.log("人员加入->", newNodeData);
this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData});
this.emitRosterChange();
-
} else {
//loger.log("更新人员列表数据,rosterExists已经存在",rosterExists);
+ this.rosterLen=Object.keys(this.rosters).length;
+ GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
+ newNodeData.rosterLen=this.rosterLen;
loger.log("人员更新信息->", newNodeData);
this._emit(MessageTypes.CLASS_UPDATE_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData});
}
-
}
//踢出用户
@@ -984,8 +990,11 @@ class ConferApe extends Ape {
loger.log(nodeId, "->离开课堂->身份->", user.role);
}
delete this.rosters[nodeId];
+ this.rosterLen=Object.keys(this.rosters).length;
+ GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
+
this.emitRosterChange();
- this._emit(MessageTypes.CLASS_DELETE_ROSTER, {"nodeId": nodeId});
+ this._emit(MessageTypes.CLASS_DELETE_ROSTER, {"nodeId": nodeId,"rosterLen":this.rosterLen});
//当前人员列表中抽一个人来检查离开人员是否占用频道
for (let key in this.rosters) {
@@ -993,7 +1002,7 @@ class ConferApe extends Ape {
//如果抽到的人是自己就处理以下操作
if (randNodeId == GlobalConfig.nodeId) {
loger.log(randNodeId, "有权限检查离开的人员是否占用channel");
- this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": nodeId});
+ this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": nodeId,"rosterLen":this.rosterLen});
//如果离开的人员是老师,需要暂停当前的课堂
if (user && user.role == ApeConsts.NR_HOST) {
diff --git a/src/pdus/pro.js b/src/pdus/pro.js
index 0cfd36a..cb17509 100644
--- a/src/pdus/pro.js
+++ b/src/pdus/pro.js
@@ -920,6 +920,7 @@ message RCNodeInfoRecordPdu {
optional string explorer = 33;//浏览器
optional string explorerVersion = 34;//浏览器版本
optional string os = 35;//系统版本
+ optional string sdkVersion = 36;//SDK版本
}
message RCVotingPollSettingsPdu {