对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
来源:互联网 发布:centos6网络配置 编辑:程序博客网 时间:2024/05/22 09:44
1.
SessionManager管理多个Session:
- class
SessionManager { -
typedef std::map SessionMap; -
SessionMap session_map_; - }
每个Session在SessionManager里通过sid来区分:
- session_map_[session->id()]
= session;
通过SessionManager::CreateSession(content_type)创建一个Session, 每个Session对应一个content_type:
- class
Session { -
std::string content_type_; - }
content_type目前传入的为"urn:xmpp:jingle:apps:rtp:1", 其实就是下元素的"xmlns"属性值.
2.
一个Session管理多个Transport:
- typedef
std::map TransportMap; - class
Session { -
TransportMap transports_; - }
每个Transport在Session里通过content_name来区分:
- transports_[content_name]
= transproxy;
通过Session::GetOrCreateTransportProx
- <</span>jingle>
-
<</span>content name="audio" creator="initiator"> -
</</span>content> -
<</span>content name="video" creator="initiator"> -
</</span>content> - </</span>jingle>
3.
一个Transport管理多个Transportchannel:
- typedef
std::map ChannelMap; - class
Transport { -
ChannelMap channels_; - }
每个Transportchannel通过channel_name来区分:
- channels_[name]
= channel;
通过 Transport::CreateChannel(name)创建一个Transport, channel_name没有对应的XMPP stanza, 其值有"rtp", "rtcp"等.
4.
一个TransportChannel(主要是P2PTransportChannel)管理多个Port:
- class
P2PTransportChannel { -
std::vector ports_; - }
Port分为StunPort, TCPPort, UDPPort等, 与元素的xmlns属性值(如"urn:xmpp:jingle:transports:ice-udp:1")以及子元素的protocol属性值(如"udp")有关.
5.
一个Port管理多个Connection:
- class
Port { -
typedef std::map AddressMap; -
AddressMap connections_; - }
6.
一个Connection包括一个local_candidate和一个remote_candidate:
class Connection
- class
Connection { -
size_t local_candidate_index_; -
Candidate remote_candidate_; - }
- 对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
- 对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
- xmpp jingle 与 socket5 bytestream 的区别
- XMPP/Jingle Vs SIP/SIMPLE 的简单介绍
- XMPP/Jingle Vs SIP/SIMPLE 的简单介绍
- 基于xmpp的扩展协议libjingle
- NameNode中几个关键的数据结构
- NameNode中几个关键的数据结构
- linux上各种客户端对XMPP Jingle特性的支持情况
- xmpp基本概念_节(stanza)
- jingle 就是xmpp+p2p
- XMPP学习8-Jingle
- 我理解的USB接口通信的几个关键点
- java的几个关键
- 对于SOCKET里几个关键点我的理解
- 理解虚函数( virtual function )的几个关键点: 转载
- 理解虚函数( virtual function )的几个关键点(转载)
- USB HID协议中几个关键概念的理解
- 重复代码(克隆代码)的几个概念与类型
- 黑马程序员---GUI(图形化界面)
- hdu1709 The Balance
- Segmentation fault (core dumped)
- 假前学习总结
- 对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
- error: 'for' loop initial declarations are only allowed in C99 mode
- hdu 1722 Cake
- 黑马程序员---网络编程
- ZOJ 3666 Alice and Bob(博弈 sg 函数入门)
- 线段树单点更新个人总结
- PAT_1004: Counting Leaves
- c++ 友元函数
- linux TCP socket 实例