XTask

Chat


tgcalls数据回调

<p>[TOC]</p> <h4>简要描述</h4> <ul> <li>tgcalls模块:封装了mediasoup所有连接与数据收发等操作;</li> <li>本文档详细描述了所有mediasoup接收数据后的回调流程。</li> </ul> <h4>请求URL</h4> <ul> <li><code>wss://13.70.36.83:4443</code></li> </ul> <h4>请求方式</h4> <ul> <li>WebSocket </li> </ul> <h4>数据结构</h4> <p>定义文件: client-secret-app\secret\tdesktop\Telegram\ThirdParty\tgcalls\tgcalls\mediasoup\MediaCommon.h</p> <h5>通用回调数据:MsNotify</h5> <p>回调通用数据结构:MsNotify, 该结构使用了std::varanint类型, 里边聚合了多种数据结构,以适合所有不同类型消息中的数据内容,结构定义如下: <strong>1. PeerInfo 用户操作类型消息所使用的通用数据结构</strong> // base info strSrcPeerId // 发起者PeerID, 例谁对谁发起了操作, 如本人操作,则同dstId strDstPeerId; // 主动发起或者通知消息业务目标用户Id strDstNick; // 目标用户昵称 e.g.&quot;xqk&quot; // device info strDeviceName; // 接入设备名称 e.g.&quot;libmediasoupclient&quot; strDeviceVersion; // 接入设备版本 e.g.&quot;3.3.0&quot; <strong>2. ProducerInfo Producer/Consumer所使用的通用消息数据结构</strong> // base info strSrcPeerId // 发起者PeerID, 例谁对谁发起了操作, 如本人操作,则同dstId strDstPeerId; // 主动发起或者通知消息业务目标用户Id // producer info // consumer info</p> <p>以下消息将使用PeerInfo:</p> <ol> <li>join</li> </ol> <p>以下消息将使用ProducerInfo:</p> <p>通用通知消息接收入口: MediasoupInstanceCustomInternal::OnReceiveNotification</p> <h4>流程说明</h4> <pre><code>1. 回调统一入口:MediasoupInstanceCustomInternal::sigCallbackTelegram 所以需要回调上层的消息,必须经过这个通用接口进行一轮数据处理操作, 将处理的数据结果发送到消息队列表,并转发给上层。 其中会通过代理类NotifyDispatch负责处理所有消息的数据封装功能。 2. 通过 _sendNotify 对象将封装好的MsNotify数据对象丢给消息队列 通过代理类NotifyDispatch可以将原始用户数据,收发json数据等 封装成通用的数据结构MsNotify,最后将这个对象通过_sendNotify事件丢给上层。 3. 接收统一出口:STMeetMediaSoupServer::receiveMsNotify 此时快到了应用层SecretDesktopPro,通过这个receiveMsNotify统一事件出口, 可以将底层提交的事件对象MsNotify捕获出来,并进行处理。 4. 根据MsNotify.method进行子事件绑定事件信号的fire 应用层会将所有需要处理的信令定义成rpl::event_stream&lt;tgcalls::MsNotify&gt; xxxEvent 事件信号对象。 当某业务逻辑需要用到这个事件信号的时候,可以通过connectEvent进行事件绑定, 当xxxEvent接收到事件以后,使会将所有已绑定的事件通过OBServer的模式进行广播触发。</code></pre> <h5>备注</h5> <ul> <li>更多返回错误代码请看首页的错误代码描述</li> </ul>

页面列表

ITEM_HTML