翻译-pjsip开发者指南(六)传输层

 Chapter 6:Transport Layer
传输通常是通过网络来收发消息。PJSIP的传输框架是可扩展的,也就是说应用程序可以注册自己传输消息的方法。
 6.1 Transport Layer Design
6.1.1 “Class Diagram”

下图展示了传输层各实例之间的关系。

 6.1.2 Transport Manager
传输管理器(pjsip_tpmgr)管理所有传输对象和工厂。提供下述功能:
  #通过传输引用计数器和空闲计时器来管理传输的生命周期
  #管理传输工厂
  #从传输层收包,解包,分发SIP消息到endpoint
  #基于传输类型和远端地址匹配合适的传输方式向目的地传输SIP消息。 
  #没有可用的传输时动态创建新的传输来向新的目的地传输消息。
每个endpoint只有一个传输管理器,且一般来说对应用程序不可见;应用程序必须使用endpoint提供的函数。
 6.1.3 Transport Factory

传输工厂(pjsip_tpfactory)被用来动态连接远端endpoint。其中一个例子是TCP传输,一个TCP传输需要两端都建立TCP连接。

当传输管理器发现需要为新目的地创建新的传输,会根据匹配规则(比如传输类型)查找传输工厂,然后工厂创建连接。
传输工厂的对象声明如下:
 6.1.4 Transport
传输对象使用 pjsip_transport 结构体表示。每个结构体实例通常代表一个socket句柄(如UDP,TCP),尽管传输层也支持non_socket的连接方式。
 General Transport Operations
从框架的角度来看,传输对象是一个动态的对象。框架没有轮询传输对象的机制。相反的,传输对象必须自己寻找方法来接收网络的报文,然后分发消息至传输管理器来做进一步的处理。
 推荐的方法是注册传输socket句柄到endpoint的I/O队列(pj_ioqueue),这样的话当endponit轮询I/O队列的时候,网络的包就可以被传输对象收到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值