李勇

1.人员信息中增加当前使用的sdk版本;2.监听人员信息中增加当前课堂人数

@@ -35,7 +35,6 @@ import QuestionApe from 'apes/QuestionApe'; @@ -35,7 +35,6 @@ import QuestionApe from 'apes/QuestionApe';
35 import UTF8 from 'utf-8'; 35 import UTF8 from 'utf-8';
36 36
37 let loger = Loger.getLoger('McuClient'); 37 let loger = Loger.getLoger('McuClient');
38 -let _sdkInfo = {"version": "v1.60.0.20170729", "author": "www.3mang.com"};  
39 38
40 //APE 39 //APE
41 let _sass; 40 let _sass;
@@ -58,8 +57,9 @@ export default class MessageEntrance extends Emiter { @@ -58,8 +57,9 @@ export default class MessageEntrance extends Emiter {
58 constructor() { 57 constructor() {
59 super(); 58 super();
60 //sdk 信息 59 //sdk 信息
61 - this.sdkInfo = _sdkInfo;  
62 - loger.warn(this.sdkInfo); 60 + GlobalConfig.sdkVersion="v1.61.0.20170729";
  61 + loger.warn("sdkVersion:"+GlobalConfig.sdkVersion);
  62 +
63 //获取设备和系统信息 63 //获取设备和系统信息
64 SystemConfig.getSystemInfo(); 64 SystemConfig.getSystemInfo();
65 65
@@ -26,6 +26,7 @@ class ConferApe extends Ape { @@ -26,6 +26,7 @@ class ConferApe extends Ape {
26 ); 26 );
27 27
28 this.rosters = {}; //用户列表 28 this.rosters = {}; //用户列表
  29 + this.rosterLen=0;//当前课堂人数
29 this.timerCounter = new TimerCounter(); //计时器 30 this.timerCounter = new TimerCounter(); //计时器
30 31
31 //第三方消息控制 parent和Iframe直接的通讯 32 //第三方消息控制 parent和Iframe直接的通讯
@@ -149,6 +150,7 @@ class ConferApe extends Ape { @@ -149,6 +150,7 @@ class ConferApe extends Ape {
149 nodeInfoRecordPdu.explorer = GlobalConfig.explorer; 150 nodeInfoRecordPdu.explorer = GlobalConfig.explorer;
150 nodeInfoRecordPdu.explorerVersion = GlobalConfig.explorerVersion; 151 nodeInfoRecordPdu.explorerVersion = GlobalConfig.explorerVersion;
151 nodeInfoRecordPdu.os = GlobalConfig.os; 152 nodeInfoRecordPdu.os = GlobalConfig.os;
  153 + nodeInfoRecordPdu.sdkVersion=GlobalConfig.sdkVersion||"未知版本";
152 154
153 return nodeInfoRecordPdu; 155 return nodeInfoRecordPdu;
154 } 156 }
@@ -841,9 +843,9 @@ class ConferApe extends Ape { @@ -841,9 +843,9 @@ class ConferApe extends Ape {
841 //loger.log("自己加入课堂的消息->",nodeId,"role-->", nodeData.role, ApeConsts.userTypes[nodeData.role]); 843 //loger.log("自己加入课堂的消息->",nodeId,"role-->", nodeData.role, ApeConsts.userTypes[nodeData.role]);
842 //自己加入的时候,需要做一下判断操作,如果满足以下3个条件就要暂停课堂: 844 //自己加入的时候,需要做一下判断操作,如果满足以下3个条件就要暂停课堂:
843 // 1.当前课堂只有自己;2.自己的身份不是host;3当前的课堂状态为(CLASS_STATUS_STARTED= 1;//直播中) 845 // 1.当前课堂只有自己;2.自己的身份不是host;3当前的课堂状态为(CLASS_STATUS_STARTED= 1;//直播中)
844 - let rosterLen = Object.keys(this.rosters).length;  
845 - GlobalConfig.rosterNumber = rosterLen;//记录当前的总人数  
846 - if (rosterLen < 1 && !GlobalConfig.isHost && GlobalConfig.classStatus == ApeConsts.CLASS_STATUS_STARTED) { 846 + this.rosterLen = Object.keys(this.rosters).length;
  847 + GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
  848 + if (this.rosterLen < 1 && !GlobalConfig.isHost && GlobalConfig.classStatus == ApeConsts.CLASS_STATUS_STARTED) {
847 loger.warn("当前课堂没有老师->暂停课堂"); 849 loger.warn("当前课堂没有老师->暂停课堂");
848 this.pauseClass({isForce: true}); 850 this.pauseClass({isForce: true});
849 this.stopRecord(true); 851 this.stopRecord(true);
@@ -910,17 +912,21 @@ class ConferApe extends Ape { @@ -910,17 +912,21 @@ class ConferApe extends Ape {
910 loger.log("NR_INVISIBLE"); 912 loger.log("NR_INVISIBLE");
911 return; 913 return;
912 } 914 }
913 - if (!rosterExists) { 915 + if (!rosterExists){
  916 + this.rosterLen=Object.keys(this.rosters).length;
  917 + GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
  918 + newNodeData.rosterLen=this.rosterLen;
914 loger.log("人员加入->", newNodeData); 919 loger.log("人员加入->", newNodeData);
915 this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); 920 this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData});
916 this.emitRosterChange(); 921 this.emitRosterChange();
917 -  
918 } else { 922 } else {
919 //loger.log("更新人员列表数据,rosterExists已经存在",rosterExists); 923 //loger.log("更新人员列表数据,rosterExists已经存在",rosterExists);
  924 + this.rosterLen=Object.keys(this.rosters).length;
  925 + GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
  926 + newNodeData.rosterLen=this.rosterLen;
920 loger.log("人员更新信息->", newNodeData); 927 loger.log("人员更新信息->", newNodeData);
921 this._emit(MessageTypes.CLASS_UPDATE_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); 928 this._emit(MessageTypes.CLASS_UPDATE_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData});
922 } 929 }
923 -  
924 } 930 }
925 931
926 //踢出用户 932 //踢出用户
@@ -984,8 +990,11 @@ class ConferApe extends Ape { @@ -984,8 +990,11 @@ class ConferApe extends Ape {
984 loger.log(nodeId, "->离开课堂->身份->", user.role); 990 loger.log(nodeId, "->离开课堂->身份->", user.role);
985 } 991 }
986 delete this.rosters[nodeId]; 992 delete this.rosters[nodeId];
  993 + this.rosterLen=Object.keys(this.rosters).length;
  994 + GlobalConfig.rosterNumber = this.rosterLen;//记录当前的总人数
  995 +
987 this.emitRosterChange(); 996 this.emitRosterChange();
988 - this._emit(MessageTypes.CLASS_DELETE_ROSTER, {"nodeId": nodeId}); 997 + this._emit(MessageTypes.CLASS_DELETE_ROSTER, {"nodeId": nodeId,"rosterLen":this.rosterLen});
989 998
990 //当前人员列表中抽一个人来检查离开人员是否占用频道 999 //当前人员列表中抽一个人来检查离开人员是否占用频道
991 for (let key in this.rosters) { 1000 for (let key in this.rosters) {
@@ -993,7 +1002,7 @@ class ConferApe extends Ape { @@ -993,7 +1002,7 @@ class ConferApe extends Ape {
993 //如果抽到的人是自己就处理以下操作 1002 //如果抽到的人是自己就处理以下操作
994 if (randNodeId == GlobalConfig.nodeId) { 1003 if (randNodeId == GlobalConfig.nodeId) {
995 loger.log(randNodeId, "有权限检查离开的人员是否占用channel"); 1004 loger.log(randNodeId, "有权限检查离开的人员是否占用channel");
996 - this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": nodeId}); 1005 + this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": nodeId,"rosterLen":this.rosterLen});
997 //如果离开的人员是老师,需要暂停当前的课堂 1006 //如果离开的人员是老师,需要暂停当前的课堂
998 1007
999 if (user && user.role == ApeConsts.NR_HOST) { 1008 if (user && user.role == ApeConsts.NR_HOST) {
@@ -920,6 +920,7 @@ message RCNodeInfoRecordPdu { @@ -920,6 +920,7 @@ message RCNodeInfoRecordPdu {
920 optional string explorer = 33;//浏览器 920 optional string explorer = 33;//浏览器
921 optional string explorerVersion = 34;//浏览器版本 921 optional string explorerVersion = 34;//浏览器版本
922 optional string os = 35;//系统版本 922 optional string os = 35;//系统版本
  923 + optional string sdkVersion = 36;//SDK版本
923 } 924 }
924 925
925 message RCVotingPollSettingsPdu { 926 message RCVotingPollSettingsPdu {