李勇

1.sass获取课堂校验信息返回参数中是否需要密码判断的是学生的,老师默认需要密码(SASS没有判断老师的)

2.调整了Sass登陆的接口(区分老师和学生登陆)
3.修改文档模块的pdu结构
此 diff 太大无法显示。
@@ -128,6 +128,7 @@ export default class MessageEntrance extends Emiter { @@ -128,6 +128,7 @@ export default class MessageEntrance extends Emiter {
128 _mcuErrorHandler(_data){ 128 _mcuErrorHandler(_data){
129 if(_mcuErrorCallBackFun){ 129 if(_mcuErrorCallBackFun){
130 let errorMessage={"code":_data,"reson":""}; 130 let errorMessage={"code":_data,"reson":""};
  131 + loger.log("MCU_ERROR",errorMessage);
131 _mcuErrorCallBackFun(errorMessage); 132 _mcuErrorCallBackFun(errorMessage);
132 } 133 }
133 } 134 }
@@ -206,18 +207,38 @@ export default class MessageEntrance extends Emiter { @@ -206,18 +207,38 @@ export default class MessageEntrance extends Emiter {
206 // 用meetingNumber向SASS平台获取入会验证信息成功 207 // 用meetingNumber向SASS平台获取入会验证信息成功
207 _sassInitSuccessHandler(_data) { 208 _sassInitSuccessHandler(_data) {
208 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1} 209 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1}
209 - if(_data){  
210 - GlobalConfig.md5=_data.md5||"";//这个暂时用假数据,后台接口写完就有数据了  
211 - GlobalConfig.msType=_data.msType||1;  
212 - GlobalConfig.passwordRequired=_data.passwordRequired||false;  
213 - GlobalConfig.siteId=_data.siteId; 210 +
  211 + //储存数据
  212 + GlobalConfig.md5=_data.md5||"";//这个暂时用假数据,后台接口写完就有数据了
  213 + GlobalConfig.msType=_data.msType||1;
  214 + GlobalConfig.siteId=_data.siteId||"";
  215 + GlobalConfig.classType=_data.classType||"";
  216 +
  217 + //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
  218 + if(GlobalConfig.userRole=="host"){
  219 + GlobalConfig.passwordRequired=true;
  220 + }else {
  221 + GlobalConfig.passwordRequired=_data.passwordRequired||false;
214 } 222 }
  223 +
215 loger.log('向SASS平台获取入会验证信息成功.'); 224 loger.log('向SASS平台获取入会验证信息成功.');
216 - this._emit(MessageTypes.CLASS_INIT_SUCCESS,_data); 225 +
  226 + //this._emit(MessageTypes.CLASS_INIT_SUCCESS,initSuccessCallBackData);
  227 +
  228 + //设置当前的会议状态
217 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1); 229 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_1);
218 230
219 if(_initSuccessCallBackFun){ 231 if(_initSuccessCallBackFun){
220 - _initSuccessCallBackFun(_data); 232 + //返回给客户端初始化成功的数据
  233 + let initSuccessCallBackData={};
  234 + initSuccessCallBackData.siteId=GlobalConfig.siteId;
  235 + initSuccessCallBackData.meetingNumber=GlobalConfig.confId;
  236 + initSuccessCallBackData.userRole=GlobalConfig.userRole;
  237 + initSuccessCallBackData.userId=GlobalConfig.userId;
  238 + initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;
  239 + initSuccessCallBackData.classType=GlobalConfig.classType;
  240 +
  241 + _initSuccessCallBackFun(initSuccessCallBackData);
221 } 242 }
222 } 243 }
223 244
@@ -234,11 +255,35 @@ export default class MessageEntrance extends Emiter { @@ -234,11 +255,35 @@ export default class MessageEntrance extends Emiter {
234 //使用固定的假数据 255 //使用固定的假数据
235 _setDebugData(_data){ 256 _setDebugData(_data){
236 loger.log("setDebugData "+_data); 257 loger.log("setDebugData "+_data);
237 - GlobalConfig.setDebugData(_data); 258 + //GlobalConfig.setDebugData(_data);
238 } 259 }
239 260
240 // 通过SASS平台验证 261 // 通过SASS平台验证
241 _sassVerifySuccessHandler(_data) { 262 _sassVerifySuccessHandler(_data) {
  263 +
  264 + //返回值
  265 + /* flag 数值型 无 True:成功
  266 + Flag:失败
  267 + h5_mcu_list 字符串 H5muc列表
  268 + maxVideoChannels 数值型 最大视频路数
  269 + maxAudioChannels 数值型 最大音频路数
  270 + h5Module 数值型 H5开关
  271 + ms 字符串 Ms列表
  272 + mcu 字符串 Mcu列表
  273 + rs 字符串 Rs列表
  274 + doc 字符串 Doc列表*/
  275 +
  276 + GlobalConfig.doc=_data.doc;
  277 + GlobalConfig.h5_mcu_list=_data.h5_mcu_list;
  278 + GlobalConfig.h5Module=_data.h5Module;
  279 + GlobalConfig.maxAudioChannels=_data.maxAudioChannels;
  280 + GlobalConfig.maxVideoChannels=_data.maxVideoChannels;
  281 + GlobalConfig.mcu=_data.mcu;
  282 + GlobalConfig.ms=_data.ms;
  283 + GlobalConfig.record=_data.record;
  284 + GlobalConfig.rs=_data.rs;
  285 +
  286 +
242 loger.log('加入底层MCU会议.'); 287 loger.log('加入底层MCU会议.');
243 if(_mcu){ 288 if(_mcu){
244 _mcu.joinMCU(GlobalConfig.getConfInfo()); 289 _mcu.joinMCU(GlobalConfig.getConfInfo());
@@ -268,8 +313,75 @@ export default class MessageEntrance extends Emiter { @@ -268,8 +313,75 @@ export default class MessageEntrance extends Emiter {
268 _sass.getClassDetail();//会议信息 313 _sass.getClassDetail();//会议信息
269 _sass.getMeetingParam();//会议参数大全 314 _sass.getMeetingParam();//会议参数大全
270 } 315 }
  316 +
  317 + //储存数据
  318 +
  319 + GlobalConfig.MCUServerIP=_data.MCUServerIP;
  320 + GlobalConfig.MCUServerPort=_data.MCUServerPort;
  321 + GlobalConfig.classRole=_data.classRole;
  322 + GlobalConfig.confId=_data.confId;
  323 + GlobalConfig.h5Module=_data.h5Module;
  324 + GlobalConfig.isHost=_data.isHost;
  325 + GlobalConfig.maxAudioChannels=_data.maxAudioChannels;
  326 + GlobalConfig.maxVideoChannels=_data.maxVideoChannels;
  327 + GlobalConfig.maxMediaChannels=_data.maxMediaChannels;
  328 + GlobalConfig.mcuConfInfo=_data.mcuConfInfo;
  329 + GlobalConfig.mcuDelay=_data.mcuDelay;
  330 + GlobalConfig.md5=_data.md5;
  331 + GlobalConfig.msType=_data.msType;
  332 + GlobalConfig.nodeId=_data.nodeId;
  333 + GlobalConfig.password=_data.password;
  334 + //GlobalConfig.passwordRequired 老师的默认是true
  335 + GlobalConfig.portal=_data.portal;
  336 + GlobalConfig.role=_data.role;
  337 + GlobalConfig.siteId=_data.siteId;
  338 + GlobalConfig.topNodeID=_data.topNodeID;
  339 + GlobalConfig.userId=_data.userId;
  340 + GlobalConfig.userName=_data.userName;
  341 + GlobalConfig.userRole=_data.userRole;
  342 + GlobalConfig.userType=_data.userType;
  343 +
  344 + //返回给客户数据
271 if(_joinClassSuccessCallBackFun){ 345 if(_joinClassSuccessCallBackFun){
272 - _joinClassSuccessCallBackFun(_data); 346 + //返回给客户端初始化成功的数据
  347 + let initSuccessCallBackData={};
  348 +
  349 + //GlobalConfig.MCUServerIP=_data.MCUServerIP;
  350 + // GlobalConfig.MCUServerPort=_data.MCUServerPort;
  351 +
  352 + initSuccessCallBackData.doc=GlobalConfig.doc;//文档服务器地址
  353 + initSuccessCallBackData.classRole=GlobalConfig.classRole;
  354 + initSuccessCallBackData.confId=GlobalConfig.confId;
  355 + initSuccessCallBackData.h5Module=GlobalConfig.h5Module;
  356 + initSuccessCallBackData.isHost=GlobalConfig.isHost;
  357 + initSuccessCallBackData.maxAudioChannels=GlobalConfig.maxAudioChannels;
  358 + initSuccessCallBackData.maxVideoChannels=GlobalConfig.maxVideoChannels;
  359 + initSuccessCallBackData.maxMediaChannels=GlobalConfig.maxMediaChannels;
  360 + // GlobalConfig.mcuConfInfo=_data.mcuConfInfo;
  361 + initSuccessCallBackData.mcuDelay=GlobalConfig.mcuDelay;
  362 + //GlobalConfig.md5=_data.md5;
  363 + initSuccessCallBackData.msType=GlobalConfig.msType;
  364 + initSuccessCallBackData.nodeId=GlobalConfig.nodeId;
  365 + initSuccessCallBackData.password=GlobalConfig.password;
  366 + initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;// 老师的默认是true
  367 + //GlobalConfig.passwordRequired 老师的默认是true
  368 + //GlobalConfig.portal=_data.portal;
  369 + initSuccessCallBackData.role=GlobalConfig.role;
  370 + initSuccessCallBackData.siteId=GlobalConfig.siteId;
  371 + initSuccessCallBackData.topNodeID=GlobalConfig.topNodeID;
  372 + initSuccessCallBackData.userId=GlobalConfig.userId;
  373 + initSuccessCallBackData.userName=GlobalConfig.userName;
  374 + initSuccessCallBackData.userRole=GlobalConfig.userRole;
  375 + initSuccessCallBackData.userType=GlobalConfig.userType;
  376 +
  377 + initSuccessCallBackData.siteId=GlobalConfig.siteId;
  378 + initSuccessCallBackData.meetingNumber=GlobalConfig.confId;
  379 + initSuccessCallBackData.userRole=GlobalConfig.userRole;
  380 + initSuccessCallBackData.userId=GlobalConfig.userId;
  381 + initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;
  382 + initSuccessCallBackData.classType=GlobalConfig.classType;
  383 + loger.log('加入会议成功',initSuccessCallBackData);
  384 + _joinClassSuccessCallBackFun(initSuccessCallBackData);
273 } 385 }
274 } 386 }
275 //// MCU 会议失败 387 //// MCU 会议失败
@@ -78,6 +78,7 @@ GlobalConfig.userRole="normal"; @@ -78,6 +78,7 @@ GlobalConfig.userRole="normal";
78 GlobalConfig.role=1; 78 GlobalConfig.role=1;
79 GlobalConfig.isHost=false; 79 GlobalConfig.isHost=false;
80 GlobalConfig.classRole=0; 80 GlobalConfig.classRole=0;
  81 +GlobalConfig.classType=0;//课堂类型,直播或 1V1互动
81 GlobalConfig.userId=0; 82 GlobalConfig.userId=0;
82 GlobalConfig.userName=""; 83 GlobalConfig.userName="";
83 GlobalConfig.password=""; 84 GlobalConfig.password="";
@@ -91,6 +92,7 @@ GlobalConfig.portal="112.126.80.182:80"; @@ -91,6 +92,7 @@ GlobalConfig.portal="112.126.80.182:80";
91 GlobalConfig.ip="112.126.80.182"; 92 GlobalConfig.ip="112.126.80.182";
92 GlobalConfig.port="80"; 93 GlobalConfig.port="80";
93 GlobalConfig.MCUServerIP="114.215.195.70"; 94 GlobalConfig.MCUServerIP="114.215.195.70";
  95 +GlobalConfig.doc="";
94 GlobalConfig.MCUServerPort=9003; 96 GlobalConfig.MCUServerPort=9003;
95 GlobalConfig.maxVideoChannels=1; 97 GlobalConfig.maxVideoChannels=1;
96 GlobalConfig.maxAudioChannels=1; 98 GlobalConfig.maxAudioChannels=1;
@@ -17,7 +17,7 @@ function MessageTypes() {} @@ -17,7 +17,7 @@ function MessageTypes() {}
17 17
18 //--------------------事件相关的定义-------------------------------------- 18 //--------------------事件相关的定义--------------------------------------
19 //初始化相关事件定义 19 //初始化相关事件定义
20 -MessageTypes.CLASS_INIT_SUCCESS='class.init.success';//初始化成功 20 +//MessageTypes.CLASS_INIT_SUCCESS='class.init.success';//初始化成功
21 //MessageTypes.CLASS_INIT_FAILED='class.init.failed';//初始化失败 21 //MessageTypes.CLASS_INIT_FAILED='class.init.failed';//初始化失败
22 22
23 //加入会议相关事件定义 23 //加入会议相关事件定义
@@ -91,8 +91,23 @@ class Sass extends Emiter { @@ -91,8 +91,23 @@ class Sass extends Emiter {
91 91
92 // 入会密码校验 92 // 入会密码校验
93 sendPWDChecking() { 93 sendPWDChecking() {
94 - let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`; 94 + //let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`;
95 95
  96 + /*
  97 + /3m/api/meeting/signIn.do
  98 + siteId 站点号
  99 + classId 课堂号(meetingNumber)
  100 + isTeacher 是否是老师:1 是 0 否
  101 + password 输入的密码
  102 + // 请求格式 http://112.126.80.182/3m/api/meeting/signIn.do?siteId=h5test&classId=526661904&password=111111&isTeacher=0
  103 + */
  104 + //判断是否是老师
  105 + let isTeacher=0;
  106 + if(confInfo.userRole=="host"){
  107 + isTeacher=1
  108 + }
  109 +
  110 + let url = `http://${confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&isTeacher=${isTeacher}&password=${confInfo.password}`;
96 loger.log('会议密码校验', url); 111 loger.log('会议密码校验', url);
97 fetch(url, { 112 fetch(url, {
98 timeout: 5000 113 timeout: 5000
@@ -107,17 +122,18 @@ class Sass extends Emiter { @@ -107,17 +122,18 @@ class Sass extends Emiter {
107 } 122 }
108 }) 123 })
109 .then(ret => { 124 .then(ret => {
110 - if (ret === 'false') { 125 + let rectObj=JSON.parse(ret);
  126 + if (rectObj.flag === 'false'||rectObj.flag === false) {
111 loger.error(`会议密码校验-失败.`); 127 loger.error(`会议密码校验-失败.`);
112 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_PASSWORD_WRONG); 128 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_PASSWORD_WRONG);
113 return ; 129 return ;
114 } 130 }
115 - if (ret === 'true') { 131 + if (rectObj.flag=== 'true'||rectObj.flag === true) {
116 loger.log(`会议密码校验-成功.`); 132 loger.log(`会议密码校验-成功.`);
117 this.sendMD5Checking(); 133 this.sendMD5Checking();
118 return; 134 return;
119 } 135 }
120 - loger.error(`会议密码校验-协议异常.`); 136 + loger.error(`会议密码校验-协议异常.`,rectObj);
121 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_PROTOCOL); 137 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_PROTOCOL);
122 }) 138 })
123 .catch(err => { 139 .catch(err => {
@@ -159,8 +175,7 @@ class Sass extends Emiter { @@ -159,8 +175,7 @@ class Sass extends Emiter {
159 GlobalConfig.maxVideoChannels=confInfo.maxVideoChannels; 175 GlobalConfig.maxVideoChannels=confInfo.maxVideoChannels;
160 GlobalConfig.maxAudioChannels=confInfo.maxAudioChannels; 176 GlobalConfig.maxAudioChannels=confInfo.maxAudioChannels;
161 GlobalConfig.maxMediaChannels=confInfo.maxMediaChannels; 177 GlobalConfig.maxMediaChannels=confInfo.maxMediaChannels;
162 - loger.log('H5Sass校验完成');  
163 - console.log(ret); 178 + loger.log('H5Sass校验完成',ret);
164 this._emit(Sass.SUCCESS,ret); 179 this._emit(Sass.SUCCESS,ret);
165 } else { 180 } else {
166 loger.log('H5SassMD5校验-失败.'); 181 loger.log('H5SassMD5校验-失败.');
@@ -296,7 +296,7 @@ export default class Ape extends Emiter { @@ -296,7 +296,7 @@ export default class Ape extends Emiter {
296 296
297 send(appPdu) { 297 send(appPdu) {
298 loger.log('Ape发送数据NORMAL PDU', appPdu); 298 loger.log('Ape发送数据NORMAL PDU', appPdu);
299 - loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code); 299 + //loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
300 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){ 300 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){
301 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN); 301 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
302 return; 302 return;
@@ -321,7 +321,7 @@ export default class Ape extends Emiter { @@ -321,7 +321,7 @@ export default class Ape extends Emiter {
321 // 发送当前APE(session uniform包) 321 // 发送当前APE(session uniform包)
322 sendUniform(appPdu, top) { 322 sendUniform(appPdu, top) {
323 loger.log('Ape发送数据UNIFORM PDU', appPdu); 323 loger.log('Ape发送数据UNIFORM PDU', appPdu);
324 - loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code); 324 + //loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
325 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){ 325 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){
326 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN); 326 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
327 return; 327 return;
@@ -345,7 +345,7 @@ export default class Ape extends Emiter { @@ -345,7 +345,7 @@ export default class Ape extends Emiter {
345 345
346 sendChatUniform(appPdu, top) { 346 sendChatUniform(appPdu, top) {
347 loger.log('Ape发送数据UNIFORM PDU', appPdu); 347 loger.log('Ape发送数据UNIFORM PDU', appPdu);
348 - loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code); 348 + //loger.log('当前的状态============',GlobalConfig.getCurrentStatus().code);
349 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){ 349 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){
350 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN); 350 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
351 return; 351 return;
@@ -58,7 +58,7 @@ class ChatApe extends Ape { @@ -58,7 +58,7 @@ class ChatApe extends Ape {
58 58
59 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message); 59 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message);
60 chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._confInfo.userName); 60 chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._confInfo.userName);
61 - chatSendPdu.fromRole = this._confInfo.classRole; 61 + chatSendPdu.fromRole = this._confInfo.classRole;//0 普通人 1 教师
62 chatSendPdu.isPublic = true; 62 chatSendPdu.isPublic = true;
63 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { 63 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) {
64 if (!chatSendPdu && 0!=chatSendPdu.peer) { 64 if (!chatSendPdu && 0!=chatSendPdu.peer) {
@@ -208,21 +208,22 @@ class DocApe extends Ape { @@ -208,21 +208,22 @@ class DocApe extends Ape {
208 } 208 }
209 209
210 /* message RCDocSendDataModelPdu { 210 /* message RCDocSendDataModelPdu {
211 - required uint32 item_idx=1;//唯一标识  
212 - required uint32 owner=2;  
213 - optional uint32 from=3;  
214 - optional uint32 cur_page_no=4;  
215 - optional uint32 page_num =5;  
216 - optional string file_type=6;  
217 - optional string doc_type=7;  
218 - optional string relative_url=8;//文档相对地址  
219 - optional string url =9;//文档地址  
220 - optional uint32 cur_V=10;  
221 - optional uint32 cur_H=11;  
222 - optional uint32 scale=12;  
223 - optional bool visible=13;  
224 - optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏  
225 - optional string db_id=15;//文档在服务器数据库中的唯一id 211 + required uint32 item_idx=1;//唯一标识
  212 + required uint32 owner=2;
  213 + optional uint32 from=3;
  214 + optional uint32 cur_page_no=4;
  215 + optional uint32 page_num =5;
  216 + optional string file_type=6;
  217 + optional string doc_type=7;
  218 + optional string relative_url=8;//文档相对地址
  219 + optional string url =9;//文档地址
  220 + optional uint32 cur_V=10;
  221 + optional uint32 cur_H=11;
  222 + optional uint32 scale=12;
  223 + optional bool visible=13;
  224 + optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
  225 + optional string doc_id=15;//文档在服务器数据库中的唯一id
  226 + optional string file_name=16;//文档的名字
226 }*/ 227 }*/
227 228
228 //判断type类型,根据type设置不同的参数 229 //判断type类型,根据type设置不同的参数
@@ -241,8 +242,9 @@ class DocApe extends Ape { @@ -241,8 +242,9 @@ class DocApe extends Ape {
241 docModelPdu.scale=_param.scale||1; 242 docModelPdu.scale=_param.scale||1;
242 docModelPdu.visible= _param.visible||false; 243 docModelPdu.visible= _param.visible||false;
243 docModelPdu.action=_param.action||0;//0,无操作, 1翻页、2.显示/隐藏 244 docModelPdu.action=_param.action||0;//0,无操作, 1翻页、2.显示/隐藏
244 - docModelPdu.dbId=_param.dbId||"";//文档在服务器数据库中的唯一id  
245 - 245 + docModelPdu.docId=_param.docId||"";//文档在服务器数据库中的唯一id
  246 + docModelPdu.fileName=_param.fileName||"doc_"+_itemIdx;//文档的名字
  247 + docModelPdu.dynamicTS=_param.dynamicTS||"0";//文档上传后返回值中的字段dynamicTransferStatic
246 console.log(docModelPdu); 248 console.log(docModelPdu);
247 return docModelPdu; 249 return docModelPdu;
248 } 250 }
@@ -728,7 +728,9 @@ message RCDocSendDataModelPdu { @@ -728,7 +728,9 @@ message RCDocSendDataModelPdu {
728 optional uint32 scale=12; 728 optional uint32 scale=12;
729 optional bool visible=13; 729 optional bool visible=13;
730 optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏 730 optional uint32 action=14;//0,无操作, 1翻页、2.显示/隐藏
731 - optional string db_id=15;//文档在服务器数据库中的唯一id 731 + optional string doc_id=15;//文档在服务器数据库中的唯一id
  732 + optional string file_name=16;//文档的名字
  733 + optional string dynamic_TS=17;//"dynamicTransferStatic": "0"
732 } 734 }
733 message RCGiftSendDataRequestPdu { 735 message RCGiftSendDataRequestPdu {
734 optional uint32 initiator = 1; 736 optional uint32 initiator = 1;