[置顶] 编写基于libjingle的应用程序的基本步骤
Libjingle是Google提供的C++组件集,它为点对点通讯与语音呼叫功能提供交互操作性。组件包包括了创建网络连接(穿越NAT与防火墙设备,中继服务器和代理),协商会话细节(编解码器,文件格式等),以及数据的交换。还提供了一些辅助的工具例如XML解析以及网络代理的处理等。使用libjingle可以实现如下应用:
- 多用户语音聊天应用
- 多用户视频会议应用
- 多用户音乐流媒体应用
- 点对点文件共享
编写一个基于libjingle的应用程序,需要按照如下的步骤进行:
1. 为自己的应用程序建立信号线程。
这个线程被许多组件使用,也是libjingle内部消息系统的关键。这个线程必须在实例SessionManager之前或运行任何Task对象(例如XmppPump)之前创建并启动。需要创建PhysicalSocketServer对象,将其传到一个新的使用这个socket server的线程实例,然后把新的线程传到全局的静态ThreadManager类。
2. 在服务器中注册。
XMPP服务器起到中央接触点的作用,注册到XMPP服务器用于找到其他的电脑。为了便于注册,必须实例化XMPP任务管理器和XmppClient对象。
3. 发送并请求联机状态。
你需要找到谁在线并请求他们的JID以便于向其他电脑请求连接。
4. 建立会话管理通道。
用于监听和响应连接请求,或用于发起你自己的请求。
5. 向外发送连接请求,或者接收连接请求。
为了侦听传入的连接,必须注册接收来自SessionManager会话连接的通知,注册会话状态的变化,发送连接请求时创建的任何自定义的会话描述,并执行其他管理任务。其中的许多任务由会话逻辑与管理组件中的封装类完成。
参考资料:http://code.google.com/intl/zh-CN/apis/talk/libjingle/building_an_app.html