Libjingle应用之一——登陆服务器
来源:互联网 发布:加密文件夹软件删除 编辑:程序博客网 时间:2024/05/01 21:58
编译过libjingle之后,开始使用libjingle设计IM client,象所有的IM client一样,第一件事情就是登陆服务器,libjingle由于遵循XMPP协议,所以理所当然的需要登陆XMPP服务器。XMPP服务器作为通信中心节点,使得IM client能够找到其他节点,发起初始连接。
1) 初始化SSL连接。talk_base::InitializeSSL(),在此函数内部调用InitializeSSLThread。
2) 创建信号处理线程。最简便的方法就是创建一个AutoThread对象,将操作系统创建的线程放入ThreadManager进行管理。
3) 获取登陆信息。XmppClientSettings管理登陆XMPP服务器需要的信息,包括用户名,密码和服务器地址。
4) 创建XMPP任务管理对象。Libjingle使用XmppPump封装XmppClient类,处理和XMPP之间的交互,包括发送和接收消息,
5) 连接到接收sigslot接收通知。连接到XmppPump对象的SignalStateChange信号,当接收到STATE_OPEN状态时,表明已经成功登陆到服务器。
6) 登陆服务器。调用XmppPump::DoLogin登陆,DoLogin函数被挂起直到信号处理线程的Run被执行。
7) 当信号处理线程Run被调用后,消息线程会开始持续的监听。
8) 监听成功和失败消息。当应用成功登陆后,XmppPump会发送STATE_OPEN消息。
9) 当成功登陆后,需要将在线信息发送给服务器,同时注册接收其他用户的在线通知。后续在建立会议管理路径章节中会描述请求STUN和relay port信息步骤,在发送和查询在线信息章节中,会将STUN和relay port信息传递给PortAllocator对象。
- Libjingle应用之一——登陆服务器
- Libjingle应用之三——设置会话管理
- 应用expect登陆服务器
- libjingle代码分析(登陆)
- Libjingle应用之二——发送和查询在线信息
- libjingle源码分析之一:Signal机制
- libjingle源码分析之一:Thread和SocketServer
- libjingle源码分析之一:Signal机制
- libjingle的重要概念之一:Signals
- libjingle
- Libjingle
- Libjingle
- IAP实现之一服务器模式 — cocos2dx
- soap应用之一多点登陆(喜悦村首发)
- SAP的netweaver应用服务器控制台之一
- linux下编译libjingle源码——android移植
- 登陆验证实例——提交数据到服务器
- ssh登陆通过跳板机到应用服务器
- Rails,用户认证
- 10分钟在NetBeans6上创建Rails2.0的weblog
- Rails 2.0特性:复合视图
- 不喜欢只有一种身份
- MapObjects开发技术 (VC++)
- Libjingle应用之一——登陆服务器
- rails2.02快速体验
- 真实世界中的 Rails,第 2 部分: 高级页面缓存
- TWebBrowser控件与MSHTML库连接
- 一种不用临时变量的交换swap方法
- 旅行中的商人与负世界 Traveling saleman
- MapObject控件的使用之加入图层
- TWebBrowser流程讲解及如何判断下载网页成功
- 今天算是搞定web白板的调研了。