Libjingle应用之三——设置会话管理

    登陆到服务器,发送和接收状态信息后,接下来就该进行会话管理了。会话管理,简而言之就是处理入向的连接请求和发送出向的连接请求。会话管理也是libjingle应用最具有用户特性的部分,因为有的会话是进行文件传送,有的会话是进行语音通话,而有的会话是进行视频聊天。如此种种,皆依赖于客户端不同的应用场合。
对于会话管理,下面的步骤都是必须的:
1)实例化NetworkManager, PortAllocator子类和SessionManager对象,这些需要在初始和接收会话请求之前完成。
2)创建一个新的线程对象,作为工作线程使用。创建talk_base::Thread对象,同时将对象作为参数传入SessionManager构造函数。
3)SessionManager注册SessionClient子类,SessionManager保存SessionClient的实例号ID,这个ID在发送和接收的代码中都是作为唯一的标识。
4)设置SessionManager发送和接收XMPP消息,SessionManagerTask作为XMPP消息组件和p2p组件的连接器,XMPP消息包括会话请求,应答和候选者列表。
5)复位STUN和接续端口信息。Libjingle默认使用google STUN和接续服务器。当然客户端也可以通过修改HttpPortAllocator中参数值使得客户端访问自己的服务器,从JingleInfoTask对象中可以得到这些信息。
发起和接收连接按照如下流程处理:
1)发送连接请求。发送连接请求意味着创建一个新的会话对象,设置会话信息并发送,在Session::SignalState中等待对应的应答。
2)接收到连接请求。当收到新的会话请求时,一个Session对象会被自动创建,SessionClient::OnSessionCreate也会被调用,有标识表明消息是入向还是出向请求。对于入向请求,需要通知用户,由用户决定接收Session::Accept或者拒绝请求Session:Reject
       3)发送和接收数据。数据通过TransportChannel对象发送和接收。 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值