正在显示
13 个修改的文件
包含
153 行增加
和
58 行删除
| @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 73 | /******/ } | 73 | /******/ } |
| 74 | 74 | ||
| 75 | /******/ var hotApplyOnUpdate = true; | 75 | /******/ var hotApplyOnUpdate = true; |
| 76 | -/******/ var hotCurrentHash = "6e29fc3a1208eaf1fcd2"; // eslint-disable-line no-unused-vars | 76 | +/******/ var hotCurrentHash = "334c795f44fe3fd40f79"; // eslint-disable-line no-unused-vars |
| 77 | /******/ var hotCurrentModuleData = {}; | 77 | /******/ var hotCurrentModuleData = {}; |
| 78 | /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars | 78 | /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars |
| 79 | 79 | ||
| @@ -788,7 +788,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -788,7 +788,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 788 | _wb_ape.on('*', function (type, data) { | 788 | _wb_ape.on('*', function (type, data) { |
| 789 | return _this._emit(type, data); | 789 | return _this._emit(type, data); |
| 790 | }); | 790 | }); |
| 791 | - _wb_ape.on(_MessageTypes2.default.ANNO_UPDATE, _this.annoUpdateHandler.bind(_this)); | 791 | + _wb_ape.on(_MessageTypes2.default.ANNOTATION_UPDATE, _this.annoUpdateHandler.bind(_this)); |
| 792 | 792 | ||
| 793 | //公开外部调用的方法 | 793 | //公开外部调用的方法 |
| 794 | _this.init = _this._init; | 794 | _this.init = _this._init; |
| @@ -976,7 +976,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -976,7 +976,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 976 | } | 976 | } |
| 977 | } | 977 | } |
| 978 | 978 | ||
| 979 | - // 白板笔记更新 | 979 | + // 白板笔记更新(svg) |
| 980 | 980 | ||
| 981 | }, { | 981 | }, { |
| 982 | key: 'annoUpdateHandler', | 982 | key: 'annoUpdateHandler', |
| @@ -984,7 +984,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -984,7 +984,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 984 | var activeDocId = _confer_ape.activeDocId; | 984 | var activeDocId = _confer_ape.activeDocId; |
| 985 | var docItem = _doc_ape.docList[activeDocId]; | 985 | var docItem = _doc_ape.docList[activeDocId]; |
| 986 | if (docItem && annoInfo.id == docItem.wbid) { | 986 | if (docItem && annoInfo.id == docItem.wbid) { |
| 987 | - this._emit(_MessageTypes2.default.DOC_ANNO, annoInfo); | 987 | + this._emit(_MessageTypes2.default.DOC_ANNOTATION, annoInfo); |
| 988 | } | 988 | } |
| 989 | } | 989 | } |
| 990 | 990 | ||
| @@ -996,9 +996,9 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -996,9 +996,9 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 996 | loger.log('Doc Show ->' + docItem.id + '|' + docItem.curPageNo); | 996 | loger.log('Doc Show ->' + docItem.id + '|' + docItem.curPageNo); |
| 997 | var annoInfo = _wb_ape.annoInfos[docItem.wbid]; | 997 | var annoInfo = _wb_ape.annoInfos[docItem.wbid]; |
| 998 | if (annoInfo) { | 998 | if (annoInfo) { |
| 999 | - this._emit(_MessageTypes2.default.DOC_ANNO, annoInfo); | 999 | + this._emit(_MessageTypes2.default.DOC_ANNOTATION, annoInfo); |
| 1000 | } else { | 1000 | } else { |
| 1001 | - this._emit(_MessageTypes2.default.DOC_ANNO); | 1001 | + this._emit(_MessageTypes2.default.DOC_ANNOTATION); |
| 1002 | } | 1002 | } |
| 1003 | } | 1003 | } |
| 1004 | 1004 | ||
| @@ -1581,6 +1581,15 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -1581,6 +1581,15 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 1581 | this._log(Loger.ERROR, msg); | 1581 | this._log(Loger.ERROR, msg); |
| 1582 | } | 1582 | } |
| 1583 | }, { | 1583 | }, { |
| 1584 | + key: 'data', | ||
| 1585 | + value: function data() { | ||
| 1586 | + for (var _len4 = arguments.length, msg = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { | ||
| 1587 | + msg[_key4] = arguments[_key4]; | ||
| 1588 | + } | ||
| 1589 | + | ||
| 1590 | + this._log(Loger.DATA, msg); | ||
| 1591 | + } | ||
| 1592 | + }, { | ||
| 1584 | key: '_log', | 1593 | key: '_log', |
| 1585 | value: function _log(type, msg) { | 1594 | value: function _log(type, msg) { |
| 1586 | msg = JSON.stringify(msg); | 1595 | msg = JSON.stringify(msg); |
| @@ -1597,6 +1606,9 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -1597,6 +1606,9 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 1597 | case Loger.ERROR: | 1606 | case Loger.ERROR: |
| 1598 | console.error(logMsg); | 1607 | console.error(logMsg); |
| 1599 | break; | 1608 | break; |
| 1609 | + case Loger.DATA: | ||
| 1610 | + console.log(logMsg); | ||
| 1611 | + break; | ||
| 1600 | } | 1612 | } |
| 1601 | } | 1613 | } |
| 1602 | } | 1614 | } |
| @@ -1610,7 +1622,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -1610,7 +1622,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 1610 | Loger.ERROR = 2; | 1622 | Loger.ERROR = 2; |
| 1611 | Loger.NO = Infinity; | 1623 | Loger.NO = Infinity; |
| 1612 | Loger.logLevel = Loger.LOG; | 1624 | Loger.logLevel = Loger.LOG; |
| 1613 | - | 1625 | + Loger.DATA = 5; |
| 1614 | var _default = { | 1626 | var _default = { |
| 1615 | getLoger: function getLoger(info) { | 1627 | getLoger: function getLoger(info) { |
| 1616 | return new Loger(info); | 1628 | return new Loger(info); |
| @@ -1621,7 +1633,8 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -1621,7 +1633,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 1621 | LOG: Loger.LOG, | 1633 | LOG: Loger.LOG, |
| 1622 | WARN: Loger.WARN, | 1634 | WARN: Loger.WARN, |
| 1623 | ERROR: Loger.ERROR, | 1635 | ERROR: Loger.ERROR, |
| 1624 | - NO: Loger.NO | 1636 | + NO: Loger.NO, |
| 1637 | + DATA: Loger.DATA | ||
| 1625 | }; | 1638 | }; |
| 1626 | exports.default = _default; | 1639 | exports.default = _default; |
| 1627 | ; | 1640 | ; |
| @@ -1676,24 +1689,28 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -1676,24 +1689,28 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 1676 | //会议信息和操作事件定义 | 1689 | //会议信息和操作事件定义 |
| 1677 | MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message'; | 1690 | MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message'; |
| 1678 | MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message'; | 1691 | MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message'; |
| 1692 | + MessageTypes.CLASS_INSERT_ROSTER = 'roster_insert.message'; | ||
| 1693 | + MessageTypes.CLASS_DELETE_ROSTER = 'roster_delete.message'; | ||
| 1679 | MessageTypes.CLASS_EXIT = 'class.exit'; | 1694 | MessageTypes.CLASS_EXIT = 'class.exit'; |
| 1680 | 1695 | ||
| 1681 | //聊天模块事件定义 | 1696 | //聊天模块事件定义 |
| 1682 | - MessageTypes.CHAT_RECEIVE = 'chat.message'; | 1697 | + MessageTypes.CHAT_RECEIVE = 'chat.receive'; |
| 1683 | 1698 | ||
| 1684 | //视频模块事件定义 | 1699 | //视频模块事件定义 |
| 1685 | - MessageTypes.VIDEO_SHOW = 'video.message'; | 1700 | + MessageTypes.VIDEO_RECEIVE = 'video.receive'; |
| 1686 | 1701 | ||
| 1687 | //文档模块事件定义 | 1702 | //文档模块事件定义 |
| 1688 | - MessageTypes.DOC_SHOW = 'document.message'; | 1703 | + MessageTypes.DOC_SHOW = 'document.show'; |
| 1689 | MessageTypes.DOC_SWITCH = 'document.switch'; | 1704 | MessageTypes.DOC_SWITCH = 'document.switch'; |
| 1690 | MessageTypes.DOC_UPDATE = 'document.update'; | 1705 | MessageTypes.DOC_UPDATE = 'document.update'; |
| 1691 | MessageTypes.DOC_DEL = 'document.delete'; | 1706 | MessageTypes.DOC_DEL = 'document.delete'; |
| 1692 | - MessageTypes.DOC_ANNO = 'document.anno'; //笔记 | 1707 | + MessageTypes.DOC_ANNOTATION = 'document.annotation'; //笔记 |
| 1693 | 1708 | ||
| 1694 | //笔记事件定义 | 1709 | //笔记事件定义 |
| 1695 | - MessageTypes.ANNO_UPDATE = 'anno_update'; | ||
| 1696 | - MessageTypes.AUDIO_SHOW = 'audio.message'; | 1710 | + MessageTypes.ANNOTATION_UPDATE = 'annotation.update'; |
| 1711 | + | ||
| 1712 | + //音频 | ||
| 1713 | + MessageTypes.AUDIO_RECEIVE = 'audio.receive'; | ||
| 1697 | 1714 | ||
| 1698 | //错误事件定义 | 1715 | //错误事件定义 |
| 1699 | MessageTypes.NET_ERROR = 'net_error'; | 1716 | MessageTypes.NET_ERROR = 'net_error'; |
| @@ -2314,7 +2331,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -2314,7 +2331,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 2314 | 2331 | ||
| 2315 | var pduMsg = _index2.default.create_join_class_request_pdu(joinRequestPdu.type, confInfo.nodeId, confInfo.confId, 0, _ApeConsts2.default.BROADCAST_CHANNEL_ID, true, _PduConsts2.default.DP_TOP, confInfo.topNodeID, _PduConsts2.default.SEG_ONCE); | 2332 | var pduMsg = _index2.default.create_join_class_request_pdu(joinRequestPdu.type, confInfo.nodeId, confInfo.confId, 0, _ApeConsts2.default.BROADCAST_CHANNEL_ID, true, _PduConsts2.default.DP_TOP, confInfo.topNodeID, _PduConsts2.default.SEG_ONCE); |
| 2316 | 2333 | ||
| 2317 | - pduMsg.set("site", confInfo.siteId); | 2334 | + pduMsg.set("site", confInfo.siteId); //课堂号对应的名称 |
| 2318 | pduMsg.set("userId", confInfo.userId); | 2335 | pduMsg.set("userId", confInfo.userId); |
| 2319 | pduMsg.set("userName", _base64Js2.default.fromByteArray(_ArrayBufferUtil2.default.strToUint8Array(confInfo.userName))); | 2336 | pduMsg.set("userName", _base64Js2.default.fromByteArray(_ArrayBufferUtil2.default.strToUint8Array(confInfo.userName))); |
| 2320 | pduMsg.set("userRole", confInfo.userRole); | 2337 | pduMsg.set("userRole", confInfo.userRole); |
| @@ -2332,12 +2349,14 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -2332,12 +2349,14 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 2332 | var pduMsg = _index2.default.decode_pdu(data); | 2349 | var pduMsg = _index2.default.decode_pdu(data); |
| 2333 | var pduType = pduMsg.get("type"); | 2350 | var pduType = pduMsg.get("type"); |
| 2334 | var pduData = pduMsg.get("data"); | 2351 | var pduData = pduMsg.get("data"); |
| 2352 | + //loger.data('MCU-FirstLayer封装消息', 'type', pdu.id2type(pduMsg.type), pduMsg.type, 'sessionId', ApeConsts(pduMsg.sessionId), pduMsg.sessionId); | ||
| 2335 | loger.log('MCU-FirstLayer封装消息', 'type', _index2.default.id2type(pduMsg.type), pduMsg.type, 'sessionId', (0, _ApeConsts2.default)(pduMsg.sessionId), pduMsg.sessionId); | 2353 | loger.log('MCU-FirstLayer封装消息', 'type', _index2.default.id2type(pduMsg.type), pduMsg.type, 'sessionId', (0, _ApeConsts2.default)(pduMsg.sessionId), pduMsg.sessionId); |
| 2336 | switch (pduType) { | 2354 | switch (pduType) { |
| 2337 | case _PduType2.default.RCPDU_CONNECT_PROVIDER_RESPONSE: | 2355 | case _PduType2.default.RCPDU_CONNECT_PROVIDER_RESPONSE: |
| 2338 | //加入会议请求返回数据处理 | 2356 | //加入会议请求返回数据处理 |
| 2339 | var joinConfPdu = _index2.default['RCConferenceJoinResponsePdu'].decode(pduData); | 2357 | var joinConfPdu = _index2.default['RCConferenceJoinResponsePdu'].decode(pduData); |
| 2340 | var pduResultCode = joinConfPdu.get("result"); | 2358 | var pduResultCode = joinConfPdu.get("result"); |
| 2359 | + loger.warn('RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:' + pduResultCode); | ||
| 2341 | switch (pduResultCode) { | 2360 | switch (pduResultCode) { |
| 2342 | case _PduConsts2.default.RET_SUCCESS: | 2361 | case _PduConsts2.default.RET_SUCCESS: |
| 2343 | //加入成功 | 2362 | //加入成功 |
| @@ -13270,8 +13289,15 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13270,8 +13289,15 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13270 | }); | 13289 | }); |
| 13271 | exports.default = RCPduPackage; | 13290 | exports.default = RCPduPackage; |
| 13272 | function RCPduPackage(targe_type_id) {}; | 13291 | function RCPduPackage(targe_type_id) {}; |
| 13273 | - RCPduPackage.RCPDU_CONNECT_PROVIDER_REQUEST = 0; | ||
| 13274 | - RCPduPackage.RCPDU_CONNECT_PROVIDER_RESPONSE = 1; | 13292 | + |
| 13293 | + RCPduPackage.RCPDU_CONNECT_PROVIDER_REQUEST = 0; //加入MCU会议的请求 | ||
| 13294 | + RCPduPackage.RCPDU_CONNECT_PROVIDER_RESPONSE = 1; //返回MCU会议请求结果 | ||
| 13295 | + | ||
| 13296 | + //下面两个是在入会成功之后,创建pdu包时设置的type值 | ||
| 13297 | + RCPduPackage.RCPDU_UNIFORM_SEND_DATA_REQUEST = 125; //发送uniform_pdu | ||
| 13298 | + RCPduPackage.RCPDU_SEND_DATA_REQUEST = 120; //入会成功之后,客户端接收消息都通过这个,发送私聊的消息也用这个 | ||
| 13299 | + | ||
| 13300 | + | ||
| 13275 | RCPduPackage.RCPDU_CONFERENCE_JOIN_REQUEST = 2; | 13301 | RCPduPackage.RCPDU_CONFERENCE_JOIN_REQUEST = 2; |
| 13276 | RCPduPackage.RCPDU_CONFERENCE_JOIN_RESPONSE = 3; | 13302 | RCPduPackage.RCPDU_CONFERENCE_JOIN_RESPONSE = 3; |
| 13277 | RCPduPackage.RCPDU_CONFERENCE_INVITE_REQUEST = 10; | 13303 | RCPduPackage.RCPDU_CONFERENCE_INVITE_REQUEST = 10; |
| @@ -13304,9 +13330,9 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13304,9 +13330,9 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13304 | RCPduPackage.RCPDU_CHANNEL_LEAVE_REQUEST = 105; | 13330 | RCPduPackage.RCPDU_CHANNEL_LEAVE_REQUEST = 105; |
| 13305 | RCPduPackage.RCPDU_CHANNEL_RELEASE_REQUEST = 106; | 13331 | RCPduPackage.RCPDU_CHANNEL_RELEASE_REQUEST = 106; |
| 13306 | RCPduPackage.RCPDU_CHANNEL_RELEASE_INDICATION = 107; | 13332 | RCPduPackage.RCPDU_CHANNEL_RELEASE_INDICATION = 107; |
| 13307 | - RCPduPackage.RCPDU_SEND_DATA_REQUEST = 120; | 13333 | + |
| 13308 | RCPduPackage.RCPDU_SEND_DATA_INDICATION = 121; | 13334 | RCPduPackage.RCPDU_SEND_DATA_INDICATION = 121; |
| 13309 | - RCPduPackage.RCPDU_UNIFORM_SEND_DATA_REQUEST = 125; | 13335 | + |
| 13310 | RCPduPackage.RCPDU_UNIFORM_SEND_DATA_INDICATION = 126; | 13336 | RCPduPackage.RCPDU_UNIFORM_SEND_DATA_INDICATION = 126; |
| 13311 | RCPduPackage.RCPDU_TOKEN_GRAB_REQUEST = 130; | 13337 | RCPduPackage.RCPDU_TOKEN_GRAB_REQUEST = 130; |
| 13312 | RCPduPackage.RCPDU_TOKEN_GRAB_CONFIRM = 131; | 13338 | RCPduPackage.RCPDU_TOKEN_GRAB_CONFIRM = 131; |
| @@ -13385,12 +13411,12 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13385,12 +13411,12 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13385 | exports.default = PduConsts; | 13411 | exports.default = PduConsts; |
| 13386 | function PduConsts() {} | 13412 | function PduConsts() {} |
| 13387 | 13413 | ||
| 13388 | - PduConsts.NT_TERMINAL = 0; | ||
| 13389 | - PduConsts.NT_MULTIPORT_TERMINAL = 1; | 13414 | + //nodeType ,目前在加入课堂的时候用到 NT_TERMINAL,其他两个还没用到 |
| 13415 | + PduConsts.NT_TERMINAL = 0; //终端适配器 | ||
| 13416 | + PduConsts.NT_MULTIPORT_TERMINAL = 1; //多端口ERMINAL | ||
| 13390 | PduConsts.NT_MCU = 2; | 13417 | PduConsts.NT_MCU = 2; |
| 13391 | 13418 | ||
| 13392 | - // PduPriority | ||
| 13393 | - | 13419 | + // PduPriority 发送pdu包的 优先级 |
| 13394 | PduConsts.DP_TOP = 0; | 13420 | PduConsts.DP_TOP = 0; |
| 13395 | PduConsts.DP_HIGH = 1; | 13421 | PduConsts.DP_HIGH = 1; |
| 13396 | PduConsts.DP_MEDIUM = 2; | 13422 | PduConsts.DP_MEDIUM = 2; |
| @@ -13399,7 +13425,8 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13399,7 +13425,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13399 | // PduSegment | 13425 | // PduSegment |
| 13400 | PduConsts.SEG_BEGIN = 0; | 13426 | PduConsts.SEG_BEGIN = 0; |
| 13401 | PduConsts.SEG_END = 1; | 13427 | PduConsts.SEG_END = 1; |
| 13402 | - PduConsts.SEG_ONCE = 2; | 13428 | + PduConsts.SEG_ONCE = 2; //目前发送消息封包的时候都用的这个 |
| 13429 | + | ||
| 13403 | 13430 | ||
| 13404 | // PduReturnType | 13431 | // PduReturnType |
| 13405 | PduConsts.RET_SUCCESS = 0; | 13432 | PduConsts.RET_SUCCESS = 0; |
| @@ -13757,6 +13784,8 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13757,6 +13784,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13757 | }, { | 13784 | }, { |
| 13758 | key: 'rosterUpdateHandler', | 13785 | key: 'rosterUpdateHandler', |
| 13759 | value: function rosterUpdateHandler(nodeId, nodeData) { | 13786 | value: function rosterUpdateHandler(nodeId, nodeData) { |
| 13787 | + var userDataObj = _pdus2.default['RCNodeInfoUserDataPdu'].decode(nodeData.userData); | ||
| 13788 | + loger.log("更新人员列表数据", nodeId, userDataObj); | ||
| 13760 | if (nodeData.role === _ApeConsts2.default.NR_MASTER || nodeData.role === _ApeConsts2.default.NR_SLAVE) { | 13789 | if (nodeData.role === _ApeConsts2.default.NR_MASTER || nodeData.role === _ApeConsts2.default.NR_SLAVE) { |
| 13761 | this.hostNodeId = nodeData.nodeId; | 13790 | this.hostNodeId = nodeData.nodeId; |
| 13762 | this.hostUserId = nodeData.userId; | 13791 | this.hostUserId = nodeData.userId; |
| @@ -13768,19 +13797,27 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -13768,19 +13797,27 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 13768 | var rosterExists = this.rosters[nodeId]; | 13797 | var rosterExists = this.rosters[nodeId]; |
| 13769 | this.rosters[nodeId] = nodeData; | 13798 | this.rosters[nodeId] = nodeData; |
| 13770 | if (!rosterExists) { | 13799 | if (!rosterExists) { |
| 13800 | + this._emit(_MessageTypes2.default.CLASS_INSERT_ROSTER, { "nodeId": nodeId, "nodeData": nodeData }); | ||
| 13771 | this.emitRosterChange(); | 13801 | this.emitRosterChange(); |
| 13772 | } | 13802 | } |
| 13773 | } | 13803 | } |
| 13804 | + | ||
| 13805 | + //删除用户 | ||
| 13806 | + | ||
| 13774 | }, { | 13807 | }, { |
| 13775 | key: 'rosterDelHandler', | 13808 | key: 'rosterDelHandler', |
| 13776 | value: function rosterDelHandler(nodeId) { | 13809 | value: function rosterDelHandler(nodeId) { |
| 13777 | delete this.rosters[nodeId]; | 13810 | delete this.rosters[nodeId]; |
| 13811 | + this._emit(_MessageTypes2.default.CLASS_DELETE_ROSTER, { "nodeId": nodeId }); | ||
| 13778 | this.emitRosterChange(); | 13812 | this.emitRosterChange(); |
| 13779 | // 自己退出 | 13813 | // 自己退出 |
| 13780 | if (nodeId == this._confInfo.nodeId) { | 13814 | if (nodeId == this._confInfo.nodeId) { |
| 13781 | this._emit(_MessageTypes2.default.CLASS_EXIT); | 13815 | this._emit(_MessageTypes2.default.CLASS_EXIT); |
| 13782 | } | 13816 | } |
| 13783 | } | 13817 | } |
| 13818 | + | ||
| 13819 | + //广播当前的人数 | ||
| 13820 | + | ||
| 13784 | }, { | 13821 | }, { |
| 13785 | key: 'emitRosterChange', | 13822 | key: 'emitRosterChange', |
| 13786 | value: function emitRosterChange() { | 13823 | value: function emitRosterChange() { |
| @@ -15072,7 +15109,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -15072,7 +15109,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 15072 | 15109 | ||
| 15073 | // this._notify(RCApeEvent.E_VIDEO_DATA, videoReceivePdu.sessionId, videoReceivePdu.channelId, video_data); | 15110 | // this._notify(RCApeEvent.E_VIDEO_DATA, videoReceivePdu.sessionId, videoReceivePdu.channelId, video_data); |
| 15074 | loger.log('视频消息处理 videoIncomingHandler.', video_data); | 15111 | loger.log('视频消息处理 videoIncomingHandler.', video_data); |
| 15075 | - this._emit(_MessageTypes2.default.VIDEO_SHOW, video_data); | 15112 | + this._emit(_MessageTypes2.default.VIDEO_RECEIVE, video_data); |
| 15076 | } | 15113 | } |
| 15077 | }, { | 15114 | }, { |
| 15078 | key: 'tableUpdateHandler', | 15115 | key: 'tableUpdateHandler', |
| @@ -15115,7 +15152,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -15115,7 +15152,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 15115 | key: 'emitVideoChange', | 15152 | key: 'emitVideoChange', |
| 15116 | value: function emitVideoChange() { | 15153 | value: function emitVideoChange() { |
| 15117 | 15154 | ||
| 15118 | - this._emit(_MessageTypes2.default.VIDEO_SHOW, { | 15155 | + this._emit(_MessageTypes2.default.VIDEO_RECEIVE, { |
| 15119 | activeChannelId: this.activeChannelId, | 15156 | activeChannelId: this.activeChannelId, |
| 15120 | HLSURL: this.activeURL | 15157 | HLSURL: this.activeURL |
| 15121 | }); | 15158 | }); |
| @@ -15383,7 +15420,7 @@ return /******/ (function(modules) { // webpackBootstrap | @@ -15383,7 +15420,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||
| 15383 | svg: _utf2.default.getStringFromBytes(uncompressedBytes) | 15420 | svg: _utf2.default.getStringFromBytes(uncompressedBytes) |
| 15384 | }; | 15421 | }; |
| 15385 | this.annoInfos[recordId] = annoInfo; | 15422 | this.annoInfos[recordId] = annoInfo; |
| 15386 | - this._emit(_MessageTypes2.default.ANNO_UPDATE, annoInfo); | 15423 | + this._emit(_MessageTypes2.default.ANNOTATION_UPDATE, annoInfo); |
| 15387 | } else { | 15424 | } else { |
| 15388 | loger.log('白板动作忽略,类型:', (0, _ApeConsts2.default)(recordInfo.type)); | 15425 | loger.log('白板动作忽略,类型:', (0, _ApeConsts2.default)(recordInfo.type)); |
| 15389 | } | 15426 | } |
| @@ -586,7 +586,7 @@ client.sendChatMsg(paramInfo); | @@ -586,7 +586,7 @@ client.sendChatMsg(paramInfo); | ||
| 586 | 586 | ||
| 587 | <p>示例代码</p> | 587 | <p>示例代码</p> |
| 588 | 588 | ||
| 589 | -<pre><code>client.on(MessageTypes.VIDEO_SHOW, function(callbackData){ | 589 | +<pre><code>client.on(MessageTypes.VIDEO_RECEIVE, function(callbackData){ |
| 590 | //..... | 590 | //..... |
| 591 | }); | 591 | }); |
| 592 | </code></pre> | 592 | </code></pre> |
| @@ -604,7 +604,7 @@ client.sendChatMsg(paramInfo); | @@ -604,7 +604,7 @@ client.sendChatMsg(paramInfo); | ||
| 604 | 604 | ||
| 605 | <p>示例代码</p> | 605 | <p>示例代码</p> |
| 606 | 606 | ||
| 607 | -<pre><code>client.on(MessageTypes.DOC_ANNO,function(callbackData){ | 607 | +<pre><code>client.on(MessageTypes.DOC_ANNOTATION,function(callbackData){ |
| 608 | //..... | 608 | //..... |
| 609 | }); | 609 | }); |
| 610 | </code></pre> | 610 | </code></pre> |
| @@ -273,7 +273,7 @@ client初始化成功之后,加入会议。 | @@ -273,7 +273,7 @@ client初始化成功之后,加入会议。 | ||
| 273 | ### 视频显示 事件回调 ### | 273 | ### 视频显示 事件回调 ### |
| 274 | 示例代码 | 274 | 示例代码 |
| 275 | 275 | ||
| 276 | - client.on(MessageTypes.VIDEO_SHOW, function(callbackData){ | 276 | + client.on(MessageTypes.VIDEO_RECEIVE, function(callbackData){ |
| 277 | //..... | 277 | //..... |
| 278 | }); | 278 | }); |
| 279 | 279 | ||
| @@ -287,7 +287,7 @@ client初始化成功之后,加入会议。 | @@ -287,7 +287,7 @@ client初始化成功之后,加入会议。 | ||
| 287 | ### 文档笔记 事件回调 ### | 287 | ### 文档笔记 事件回调 ### |
| 288 | 示例代码 | 288 | 示例代码 |
| 289 | 289 | ||
| 290 | - client.on(MessageTypes.DOC_ANNO,function(callbackData){ | 290 | + client.on(MessageTypes.DOC_ANNOTATION,function(callbackData){ |
| 291 | //..... | 291 | //..... |
| 292 | }); | 292 | }); |
| 293 | 293 |
| 1 | # DOCS FOLDER | 1 | # DOCS FOLDER |
| 2 | +wrcp 主要负责和MCU服务端通讯部分的 | ||
| 3 | + | ||
| 4 | + | ||
| 5 | +1.协议上 senddata是顶层协议壳。所有消息包都嵌套打在 这个 pdu中 | ||
| 6 | + | ||
| 7 | +2. | ||
| 8 | +从会议流程上看,分以下几类: | ||
| 9 | +1、connectprovider(内部嵌套joinconference包):加入会议协议,分为request和response两组。 | ||
| 10 | +2、joinsession(内部嵌套注册表的操作包):加入应用,分为request和response | ||
| 11 | +3、joinchannel:加入channel | ||
| 12 | +4、adapterpdu 中嵌套注册表操作pdu | ||
| 13 | + mcu中的注册表是有客户端通过adapterpdu来维护的,mcu本身不维护这个数据 | ||
| 14 | + 我特别强调这个,就是想说明,会议的所有控制逻辑不是mcu完成的,而是客户端完成的 | ||
| 15 | + | ||
| 16 | +3.每个应用就是一个session,(joinsession就是加入这个应用),客户端加入这个应用后,就能从mcu的注册标中活的这个应用的所有信息。 | ||
| 17 | +conference这个应用会保留会议的主要信息如用户列表等,而且很多会议控制我觉得也会在这个应用中。 | ||
| 18 | + | ||
| 19 | +然后特定应用如聊天就是负责聊天的数据转发,需要先joinsession然后在joinchannel(相当于聊天的数据通道),这样客户端会通过senddatapdu嵌套chatsenddatapdu来发送聊天channel的消息,其他客户端只要加入了聊天应用的聊天channel,就会收到聊天消息。 | ||
| 20 | + | ||
| 21 | +每个应用在joinsession时会嵌套adapterpdu,其中带上了需要维护的注册表信息(定义 registrykey和object) | ||
| 22 | +注册表常用的就是 table,几乎所有app都维护了一个table | ||
| 23 | + | ||
| 24 | +比如一个会议中会维护三个视频通道,这样在table中就会有三条记录(以视频channel id作为索引 | ||
| 25 | + | ||
| 26 | +所有用户加入视频应用后都会获得这个信息,且记录发生改变时会广播给全网用户。 | ||
| 27 | + | ||
| 28 | +具体到这个表格的存储呢,mcu仅仅知道 id 和 一个 pdu生成的字符串还有owner信息。具体这个记录的内容,mcu没有关心。 | ||
| 29 | + | ||
| 30 | +比如想定义一个会议的控制行为,很可能的操作就是:在conference这个应用的某个表格下插入一个特定id的string值。然后通过修改这个值,然后与会的人知道当前是什么行为 | ||
| 31 | + | ||
| 32 | +再比如,tabbar中的多个tab选项,每个选项对应一个id,其属性可以保存在conference中一个表中,这样属性值中可以有visble选项,老师切换时,将相关id属性同步成true,mcu会广播给所有客户端,这样所有的与会人员就知道切换tab了。 |
| @@ -76,7 +76,7 @@ export default class MessageEntrance extends Emiter { | @@ -76,7 +76,7 @@ export default class MessageEntrance extends Emiter { | ||
| 76 | 76 | ||
| 77 | _wb_ape = new WhiteBoardApe(); | 77 | _wb_ape = new WhiteBoardApe(); |
| 78 | _wb_ape.on('*', (type, data) => this._emit(type, data)); | 78 | _wb_ape.on('*', (type, data) => this._emit(type, data)); |
| 79 | - _wb_ape.on(MessageTypes.ANNO_UPDATE, this.annoUpdateHandler.bind(this)); | 79 | + _wb_ape.on(MessageTypes.ANNOTATION_UPDATE, this.annoUpdateHandler.bind(this)); |
| 80 | 80 | ||
| 81 | //公开外部调用的方法 | 81 | //公开外部调用的方法 |
| 82 | this.init=this._init; | 82 | this.init=this._init; |
| @@ -229,12 +229,12 @@ export default class MessageEntrance extends Emiter { | @@ -229,12 +229,12 @@ export default class MessageEntrance extends Emiter { | ||
| 229 | } | 229 | } |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | - // 白板笔记更新 | 232 | + // 白板笔记更新(svg) |
| 233 | annoUpdateHandler(annoInfo) { | 233 | annoUpdateHandler(annoInfo) { |
| 234 | const activeDocId = _confer_ape.activeDocId; | 234 | const activeDocId = _confer_ape.activeDocId; |
| 235 | const docItem = _doc_ape.docList[activeDocId]; | 235 | const docItem = _doc_ape.docList[activeDocId]; |
| 236 | if (docItem && annoInfo.id == docItem.wbid) { | 236 | if (docItem && annoInfo.id == docItem.wbid) { |
| 237 | - this._emit(MessageTypes.DOC_ANNO, annoInfo); | 237 | + this._emit(MessageTypes.DOC_ANNOTATION, annoInfo); |
| 238 | } | 238 | } |
| 239 | } | 239 | } |
| 240 | 240 | ||
| @@ -243,9 +243,9 @@ export default class MessageEntrance extends Emiter { | @@ -243,9 +243,9 @@ export default class MessageEntrance extends Emiter { | ||
| 243 | loger.log('Doc Show ->' + docItem.id + '|' + docItem.curPageNo); | 243 | loger.log('Doc Show ->' + docItem.id + '|' + docItem.curPageNo); |
| 244 | const annoInfo = _wb_ape.annoInfos[docItem.wbid]; | 244 | const annoInfo = _wb_ape.annoInfos[docItem.wbid]; |
| 245 | if (annoInfo) { | 245 | if (annoInfo) { |
| 246 | - this._emit(MessageTypes.DOC_ANNO, annoInfo); | 246 | + this._emit(MessageTypes.DOC_ANNOTATION, annoInfo); |
| 247 | } else { | 247 | } else { |
| 248 | - this._emit(MessageTypes.DOC_ANNO); | 248 | + this._emit(MessageTypes.DOC_ANNOTATION); |
| 249 | 249 | ||
| 250 | } | 250 | } |
| 251 | } | 251 | } |
| @@ -41,7 +41,9 @@ class Loger { | @@ -41,7 +41,9 @@ class Loger { | ||
| 41 | error(...msg) { | 41 | error(...msg) { |
| 42 | this._log(Loger.ERROR, msg); | 42 | this._log(Loger.ERROR, msg); |
| 43 | } | 43 | } |
| 44 | - | 44 | + data(...msg) { |
| 45 | + this._log(Loger.DATA, msg); | ||
| 46 | + } | ||
| 45 | _log(type, msg) { | 47 | _log(type, msg) { |
| 46 | msg = JSON.stringify(msg); | 48 | msg = JSON.stringify(msg); |
| 47 | 49 | ||
| @@ -57,6 +59,9 @@ class Loger { | @@ -57,6 +59,9 @@ class Loger { | ||
| 57 | case Loger.ERROR: | 59 | case Loger.ERROR: |
| 58 | console.error(logMsg); | 60 | console.error(logMsg); |
| 59 | break; | 61 | break; |
| 62 | + case Loger.DATA: | ||
| 63 | + console.log(logMsg); | ||
| 64 | + break; | ||
| 60 | } | 65 | } |
| 61 | } | 66 | } |
| 62 | } | 67 | } |
| @@ -67,7 +72,7 @@ Loger.WARN = 1; | @@ -67,7 +72,7 @@ Loger.WARN = 1; | ||
| 67 | Loger.ERROR = 2; | 72 | Loger.ERROR = 2; |
| 68 | Loger.NO = Infinity; | 73 | Loger.NO = Infinity; |
| 69 | Loger.logLevel = Loger.LOG; | 74 | Loger.logLevel = Loger.LOG; |
| 70 | - | 75 | +Loger.DATA = 5; |
| 71 | export default { | 76 | export default { |
| 72 | getLoger: function getLoger(info) { | 77 | getLoger: function getLoger(info) { |
| 73 | return new Loger(info); | 78 | return new Loger(info); |
| @@ -79,5 +84,6 @@ export default { | @@ -79,5 +84,6 @@ export default { | ||
| 79 | WARN: Loger.WARN, | 84 | WARN: Loger.WARN, |
| 80 | ERROR: Loger.ERROR, | 85 | ERROR: Loger.ERROR, |
| 81 | NO: Loger.NO, | 86 | NO: Loger.NO, |
| 87 | + DATA: Loger.DATA, | ||
| 82 | }; | 88 | }; |
| 83 | 89 |
| @@ -27,24 +27,28 @@ MessageTypes.CLASS_JOIN_SUCCESS = 'join.class.success'; | @@ -27,24 +27,28 @@ MessageTypes.CLASS_JOIN_SUCCESS = 'join.class.success'; | ||
| 27 | //会议信息和操作事件定义 | 27 | //会议信息和操作事件定义 |
| 28 | MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message'; | 28 | MessageTypes.CLASS_SHOW_DETAIL = 'class_detail.message'; |
| 29 | MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message'; | 29 | MessageTypes.CLASS_SHOW_ROSTER_NUM = 'roster_num.message'; |
| 30 | +MessageTypes.CLASS_INSERT_ROSTER = 'roster_insert.message'; | ||
| 31 | +MessageTypes.CLASS_DELETE_ROSTER = 'roster_delete.message'; | ||
| 30 | MessageTypes.CLASS_EXIT = 'class.exit'; | 32 | MessageTypes.CLASS_EXIT = 'class.exit'; |
| 31 | 33 | ||
| 32 | //聊天模块事件定义 | 34 | //聊天模块事件定义 |
| 33 | -MessageTypes.CHAT_RECEIVE = 'chat.message'; | 35 | +MessageTypes.CHAT_RECEIVE = 'chat.receive'; |
| 34 | 36 | ||
| 35 | //视频模块事件定义 | 37 | //视频模块事件定义 |
| 36 | -MessageTypes.VIDEO_SHOW = 'video.message'; | 38 | +MessageTypes.VIDEO_RECEIVE = 'video.receive'; |
| 37 | 39 | ||
| 38 | //文档模块事件定义 | 40 | //文档模块事件定义 |
| 39 | -MessageTypes.DOC_SHOW = 'document.message'; | 41 | +MessageTypes.DOC_SHOW = 'document.show'; |
| 40 | MessageTypes.DOC_SWITCH = 'document.switch'; | 42 | MessageTypes.DOC_SWITCH = 'document.switch'; |
| 41 | MessageTypes.DOC_UPDATE = 'document.update'; | 43 | MessageTypes.DOC_UPDATE = 'document.update'; |
| 42 | MessageTypes.DOC_DEL='document.delete'; | 44 | MessageTypes.DOC_DEL='document.delete'; |
| 43 | -MessageTypes.DOC_ANNO = 'document.anno';//笔记 | 45 | +MessageTypes.DOC_ANNOTATION = 'document.annotation';//笔记 |
| 44 | 46 | ||
| 45 | //笔记事件定义 | 47 | //笔记事件定义 |
| 46 | -MessageTypes.ANNO_UPDATE = 'anno_update'; | ||
| 47 | -MessageTypes.AUDIO_SHOW='audio.message'; | 48 | +MessageTypes.ANNOTATION_UPDATE = 'annotation.update'; |
| 49 | + | ||
| 50 | +//音频 | ||
| 51 | +MessageTypes.AUDIO_RECEIVE='audio.receive'; | ||
| 48 | 52 | ||
| 49 | //错误事件定义 | 53 | //错误事件定义 |
| 50 | MessageTypes.NET_ERROR = 'net_error'; | 54 | MessageTypes.NET_ERROR = 'net_error'; |
| @@ -112,6 +112,8 @@ class ConferApe extends Ape { | @@ -112,6 +112,8 @@ class ConferApe extends Ape { | ||
| 112 | 112 | ||
| 113 | //更新人员列表数据 | 113 | //更新人员列表数据 |
| 114 | rosterUpdateHandler(nodeId, nodeData) { | 114 | rosterUpdateHandler(nodeId, nodeData) { |
| 115 | + var userDataObj=pdu['RCNodeInfoUserDataPdu'].decode(nodeData.userData); | ||
| 116 | + loger.log("更新人员列表数据",nodeId,userDataObj); | ||
| 115 | if (nodeData.role === ApeConsts.NR_MASTER || | 117 | if (nodeData.role === ApeConsts.NR_MASTER || |
| 116 | nodeData.role === ApeConsts.NR_SLAVE) { | 118 | nodeData.role === ApeConsts.NR_SLAVE) { |
| 117 | this.hostNodeId = nodeData.nodeId; | 119 | this.hostNodeId = nodeData.nodeId; |
| @@ -125,14 +127,15 @@ class ConferApe extends Ape { | @@ -125,14 +127,15 @@ class ConferApe extends Ape { | ||
| 125 | let rosterExists = this.rosters[nodeId]; | 127 | let rosterExists = this.rosters[nodeId]; |
| 126 | this.rosters[nodeId] = nodeData; | 128 | this.rosters[nodeId] = nodeData; |
| 127 | if (!rosterExists) { | 129 | if (!rosterExists) { |
| 130 | + this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId":nodeId,"nodeData":nodeData}); | ||
| 128 | this.emitRosterChange(); | 131 | this.emitRosterChange(); |
| 129 | } | 132 | } |
| 130 | - | ||
| 131 | - | ||
| 132 | } | 133 | } |
| 133 | 134 | ||
| 135 | + //删除用户 | ||
| 134 | rosterDelHandler(nodeId) { | 136 | rosterDelHandler(nodeId) { |
| 135 | delete this.rosters[nodeId]; | 137 | delete this.rosters[nodeId]; |
| 138 | + this._emit(MessageTypes.CLASS_DELETE_ROSTER, {"nodeId":nodeId}); | ||
| 136 | this.emitRosterChange(); | 139 | this.emitRosterChange(); |
| 137 | // 自己退出 | 140 | // 自己退出 |
| 138 | if (nodeId == this._confInfo.nodeId) { | 141 | if (nodeId == this._confInfo.nodeId) { |
| @@ -140,6 +143,7 @@ class ConferApe extends Ape { | @@ -140,6 +143,7 @@ class ConferApe extends Ape { | ||
| 140 | } | 143 | } |
| 141 | } | 144 | } |
| 142 | 145 | ||
| 146 | + //广播当前的人数 | ||
| 143 | emitRosterChange() { | 147 | emitRosterChange() { |
| 144 | this._emit(MessageTypes.CLASS_SHOW_ROSTER_NUM, Object.keys(this.rosters).length); | 148 | this._emit(MessageTypes.CLASS_SHOW_ROSTER_NUM, Object.keys(this.rosters).length); |
| 145 | } | 149 | } |
| @@ -60,7 +60,7 @@ class VideoChat extends Ape { | @@ -60,7 +60,7 @@ class VideoChat extends Ape { | ||
| 60 | 60 | ||
| 61 | // this._notify(RCApeEvent.E_VIDEO_DATA, videoReceivePdu.sessionId, videoReceivePdu.channelId, video_data); | 61 | // this._notify(RCApeEvent.E_VIDEO_DATA, videoReceivePdu.sessionId, videoReceivePdu.channelId, video_data); |
| 62 | loger.log('视频消息处理 videoIncomingHandler.', video_data); | 62 | loger.log('视频消息处理 videoIncomingHandler.', video_data); |
| 63 | - this._emit(MessageTypes.VIDEO_SHOW, video_data); | 63 | + this._emit(MessageTypes.VIDEO_RECEIVE, video_data); |
| 64 | 64 | ||
| 65 | } | 65 | } |
| 66 | 66 | ||
| @@ -102,7 +102,7 @@ class VideoChat extends Ape { | @@ -102,7 +102,7 @@ class VideoChat extends Ape { | ||
| 102 | 102 | ||
| 103 | emitVideoChange() { | 103 | emitVideoChange() { |
| 104 | 104 | ||
| 105 | - this._emit(MessageTypes.VIDEO_SHOW, { | 105 | + this._emit(MessageTypes.VIDEO_RECEIVE, { |
| 106 | activeChannelId: this.activeChannelId, | 106 | activeChannelId: this.activeChannelId, |
| 107 | HLSURL: this.activeURL, | 107 | HLSURL: this.activeURL, |
| 108 | }); | 108 | }); |
| @@ -63,7 +63,7 @@ class WhiteBoardApe extends Ape { | @@ -63,7 +63,7 @@ class WhiteBoardApe extends Ape { | ||
| 63 | svg: UTF8.getStringFromBytes(uncompressedBytes) | 63 | svg: UTF8.getStringFromBytes(uncompressedBytes) |
| 64 | }; | 64 | }; |
| 65 | this.annoInfos[recordId] = annoInfo; | 65 | this.annoInfos[recordId] = annoInfo; |
| 66 | - this._emit(MessageTypes.ANNO_UPDATE, annoInfo); | 66 | + this._emit(MessageTypes.ANNOTATION_UPDATE, annoInfo); |
| 67 | } else { | 67 | } else { |
| 68 | loger.log('白板动作忽略,类型:', ApeConsts(recordInfo.type)); | 68 | loger.log('白板动作忽略,类型:', ApeConsts(recordInfo.type)); |
| 69 | } | 69 | } |
| @@ -66,7 +66,7 @@ class MCU extends Emiter { | @@ -66,7 +66,7 @@ class MCU extends Emiter { | ||
| 66 | PduConsts.SEG_ONCE | 66 | PduConsts.SEG_ONCE |
| 67 | ); | 67 | ); |
| 68 | 68 | ||
| 69 | - pduMsg.set("site", confInfo.siteId); | 69 | + pduMsg.set("site", confInfo.siteId);//课堂号对应的名称 |
| 70 | pduMsg.set("userId", confInfo.userId); | 70 | pduMsg.set("userId", confInfo.userId); |
| 71 | pduMsg.set("userName", Base64.fromByteArray(ArrayBufferUtil.strToUint8Array(confInfo.userName))); | 71 | pduMsg.set("userName", Base64.fromByteArray(ArrayBufferUtil.strToUint8Array(confInfo.userName))); |
| 72 | pduMsg.set("userRole", confInfo.userRole); | 72 | pduMsg.set("userRole", confInfo.userRole); |
| @@ -81,12 +81,14 @@ class MCU extends Emiter { | @@ -81,12 +81,14 @@ class MCU extends Emiter { | ||
| 81 | let pduMsg = pdu.decode_pdu(data); | 81 | let pduMsg = pdu.decode_pdu(data); |
| 82 | let pduType = pduMsg.get("type"); | 82 | let pduType = pduMsg.get("type"); |
| 83 | let pduData = pduMsg.get("data"); | 83 | let pduData = pduMsg.get("data"); |
| 84 | + //loger.data('MCU-FirstLayer封装消息', 'type', pdu.id2type(pduMsg.type), pduMsg.type, 'sessionId', ApeConsts(pduMsg.sessionId), pduMsg.sessionId); | ||
| 84 | loger.log('MCU-FirstLayer封装消息', 'type', pdu.id2type(pduMsg.type), pduMsg.type, 'sessionId', ApeConsts(pduMsg.sessionId), pduMsg.sessionId); | 85 | loger.log('MCU-FirstLayer封装消息', 'type', pdu.id2type(pduMsg.type), pduMsg.type, 'sessionId', ApeConsts(pduMsg.sessionId), pduMsg.sessionId); |
| 85 | switch (pduType) { | 86 | switch (pduType) { |
| 86 | case PduType.RCPDU_CONNECT_PROVIDER_RESPONSE: | 87 | case PduType.RCPDU_CONNECT_PROVIDER_RESPONSE: |
| 87 | //加入会议请求返回数据处理 | 88 | //加入会议请求返回数据处理 |
| 88 | let joinConfPdu = pdu['RCConferenceJoinResponsePdu'].decode(pduData); | 89 | let joinConfPdu = pdu['RCConferenceJoinResponsePdu'].decode(pduData); |
| 89 | let pduResultCode = joinConfPdu.get("result"); | 90 | let pduResultCode = joinConfPdu.get("result"); |
| 91 | + loger.warn( 'RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:'+pduResultCode); | ||
| 90 | switch (pduResultCode) { | 92 | switch (pduResultCode) { |
| 91 | case PduConsts.RET_SUCCESS: | 93 | case PduConsts.RET_SUCCESS: |
| 92 | //加入成功 | 94 | //加入成功 |
| 1 | export default function PduConsts() {} | 1 | export default function PduConsts() {} |
| 2 | 2 | ||
| 3 | -PduConsts.NT_TERMINAL = 0; | ||
| 4 | -PduConsts.NT_MULTIPORT_TERMINAL = 1; | 3 | + |
| 4 | +//nodeType ,目前在加入课堂的时候用到 NT_TERMINAL,其他两个还没用到 | ||
| 5 | +PduConsts.NT_TERMINAL = 0;//终端适配器 | ||
| 6 | +PduConsts.NT_MULTIPORT_TERMINAL = 1;//多端口ERMINAL | ||
| 5 | PduConsts.NT_MCU = 2; | 7 | PduConsts.NT_MCU = 2; |
| 6 | 8 | ||
| 7 | -// PduPriority | ||
| 8 | 9 | ||
| 10 | +// PduPriority 发送pdu包的 优先级 | ||
| 9 | PduConsts.DP_TOP = 0; | 11 | PduConsts.DP_TOP = 0; |
| 10 | PduConsts.DP_HIGH = 1; | 12 | PduConsts.DP_HIGH = 1; |
| 11 | PduConsts.DP_MEDIUM = 2; | 13 | PduConsts.DP_MEDIUM = 2; |
| @@ -14,7 +16,9 @@ PduConsts.DP_LOW = 3; | @@ -14,7 +16,9 @@ PduConsts.DP_LOW = 3; | ||
| 14 | // PduSegment | 16 | // PduSegment |
| 15 | PduConsts.SEG_BEGIN = 0; | 17 | PduConsts.SEG_BEGIN = 0; |
| 16 | PduConsts.SEG_END = 1; | 18 | PduConsts.SEG_END = 1; |
| 17 | -PduConsts.SEG_ONCE = 2; | 19 | +PduConsts.SEG_ONCE = 2; //目前发送消息封包的时候都用的这个 |
| 20 | + | ||
| 21 | + | ||
| 18 | 22 | ||
| 19 | // PduReturnType | 23 | // PduReturnType |
| 20 | PduConsts.RET_SUCCESS = 0; | 24 | PduConsts.RET_SUCCESS = 0; |
| 1 | export default function RCPduPackage(targe_type_id) {}; | 1 | export default function RCPduPackage(targe_type_id) {}; |
| 2 | -RCPduPackage.RCPDU_CONNECT_PROVIDER_REQUEST = 0; | ||
| 3 | -RCPduPackage.RCPDU_CONNECT_PROVIDER_RESPONSE = 1; | 2 | + |
| 3 | +RCPduPackage.RCPDU_CONNECT_PROVIDER_REQUEST = 0;//加入MCU会议的请求 | ||
| 4 | +RCPduPackage.RCPDU_CONNECT_PROVIDER_RESPONSE = 1;//返回MCU会议请求结果 | ||
| 5 | + | ||
| 6 | +//下面两个是在入会成功之后,创建pdu包时设置的type值 | ||
| 7 | +RCPduPackage.RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;//发送uniform_pdu | ||
| 8 | +RCPduPackage.RCPDU_SEND_DATA_REQUEST = 120;//入会成功之后,客户端接收消息都通过这个,发送私聊的消息也用这个 | ||
| 9 | + | ||
| 10 | + | ||
| 4 | RCPduPackage.RCPDU_CONFERENCE_JOIN_REQUEST = 2; | 11 | RCPduPackage.RCPDU_CONFERENCE_JOIN_REQUEST = 2; |
| 5 | RCPduPackage.RCPDU_CONFERENCE_JOIN_RESPONSE = 3; | 12 | RCPduPackage.RCPDU_CONFERENCE_JOIN_RESPONSE = 3; |
| 6 | RCPduPackage.RCPDU_CONFERENCE_INVITE_REQUEST = 10; | 13 | RCPduPackage.RCPDU_CONFERENCE_INVITE_REQUEST = 10; |
| @@ -33,9 +40,9 @@ RCPduPackage.RCPDU_CHANNEL_JOIN_RESPONSE = 104; | @@ -33,9 +40,9 @@ RCPduPackage.RCPDU_CHANNEL_JOIN_RESPONSE = 104; | ||
| 33 | RCPduPackage.RCPDU_CHANNEL_LEAVE_REQUEST = 105; | 40 | RCPduPackage.RCPDU_CHANNEL_LEAVE_REQUEST = 105; |
| 34 | RCPduPackage.RCPDU_CHANNEL_RELEASE_REQUEST = 106; | 41 | RCPduPackage.RCPDU_CHANNEL_RELEASE_REQUEST = 106; |
| 35 | RCPduPackage.RCPDU_CHANNEL_RELEASE_INDICATION = 107; | 42 | RCPduPackage.RCPDU_CHANNEL_RELEASE_INDICATION = 107; |
| 36 | -RCPduPackage.RCPDU_SEND_DATA_REQUEST = 120; | 43 | + |
| 37 | RCPduPackage.RCPDU_SEND_DATA_INDICATION = 121; | 44 | RCPduPackage.RCPDU_SEND_DATA_INDICATION = 121; |
| 38 | -RCPduPackage.RCPDU_UNIFORM_SEND_DATA_REQUEST = 125; | 45 | + |
| 39 | RCPduPackage.RCPDU_UNIFORM_SEND_DATA_INDICATION = 126; | 46 | RCPduPackage.RCPDU_UNIFORM_SEND_DATA_INDICATION = 126; |
| 40 | RCPduPackage.RCPDU_TOKEN_GRAB_REQUEST = 130; | 47 | RCPduPackage.RCPDU_TOKEN_GRAB_REQUEST = 130; |
| 41 | RCPduPackage.RCPDU_TOKEN_GRAB_CONFIRM = 131; | 48 | RCPduPackage.RCPDU_TOKEN_GRAB_CONFIRM = 131; |
-
请 注册 或 登录 后发表评论