`
tw5566
  • 浏览: 455372 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

xmpp 工作过程

阅读更多

工作过程
(1)节点(如yb、pt)向本地服务器连接。
  ①XMPP 用户通过开启一个从客户端到服务器端的XML 流, 来申请一个在服务器上的Socket 连接。
  SEND: <stream: stream
     to=′sdpt.com′
     xmlns=′jabber: client′
     xmlns: stream=′http: //etherx.jabber.org/streams′>

  ②服务器通过开启一个从服务器到客户端的XML 流进行回复。
  RECV: <stream: stream
     from=′sdpt.com′
     id=′180763465′
     xmlns=′jabber: client′
     xmlns: stream=′http: //etherx.jabber.org/streams′>

(2)节点向本地服务器申请登录。
  ①用户询问登录服务器时需提供的信息。
  SEND: <iq id=′2′type=′get′>
     <query xmlns=′jabber: iq: auth′>
     <username>yb</username>
     </query>
     </iq>

  ②服务器回应用户, 告知用户登录所需要的信息。
  ③用户提供所需的信息。
  ④服务器响应一个空的类型为“result”的iq 元素, 表明登录成功。
  
  RECV: <iq id=′3′type=′result′/>  
  ⑤yb 用户发送当前状态给服务器, 表明其在线。
  SEND: <presence>
     <status>Online</status>
     </presence>

(3)用户获得花名册, 好友增加一个联系人( 如yb 获知朋友sd 在线) 。
(4)用户间发送消息( 如yb 向sd 发送消息) 。
  用户发送一条消息:
  SEND: <message to′sd@jabber.org′>
     <body>Where are you?</body>
     </message>
 
 
  服务器会根据XMPP 用户的会话信息加上一个源地址, 这样接收者收到消息时, 消息中已经包含了源地址。
(5)XMPP 服务器根据目标JID 中的域名查找、连接到目标服务器并进行认证(如sdpt.com 使用DNS 查找jabber.org, 连接到jabber.org 服务器上并进行认证) 。
(6)XMPP 服务器jabber.org 证实sd 连接到该服务器上, yb 被授权与sd 进行通信。
(7)数据在yb 与sd 间流动。
(8)用户退出, 退出时只需要关闭<stream>。

分享到:
评论

相关推荐

    xmpp协议说明ppt

    在安全方面,XMPP支持多种安全机制,如使用SSL/TLS进行加密通信,以及SASL(Simple Authentication and Security Layer)进行身份验证,确保通信过程中的数据安全和用户身份的可靠性。 总的来说,XMPP协议提供了...

    xmpp协议介绍,XMPP体系架构

    XMPP的工作原理是客户端首先连接到服务器,经过身份验证后,可以指定目标地址,服务器查找并连接到目标,进行双向认证后,客户端之间就可以开始交互消息。整个过程中,所有消息都通过服务器转发,确保了通信的安全和...

    xmpp服务器端介绍

    - "XMPP协议工作原理 - 郭懋林的日志 - 网易博客.mht" 这篇文章可能详细解释了XMPP协议的基本工作流程,包括连接建立、消息传输和断开过程。 - "XMPP协议原理介绍.mht" 可能是关于协议的概述,涵盖了XMPP的核心概念...

    xmpp通讯协议demo

    - **异步处理**:Android应用的UI线程不应被长时间运行的任务阻塞,因此需要使用异步处理或工作线程来处理XMPP通信。 - **性能优化**:考虑到移动设备的资源限制,需要对连接管理和数据传输进行优化,避免过度消耗...

    QT xmpp client 仿照 psi

    QT XMPP客户端是一种基于Qt框架实现的即时通讯应用,它...这个过程中,不仅需要理解XMPP协议的基本原理,还需要熟悉Qt的编程风格和GUI设计原则。通过不断迭代和改进,我们可以构建出一个稳定且用户友好的即时通讯应用。

    xmpp客户端源代码

    通过研究这个开源项目,开发者可以学习到如何在Android环境中搭建XMPP客户端,理解XMPP协议的工作原理,以及如何利用Smack库来简化开发过程。同时,这也是一个很好的起点,为自定义即时通讯应用或者推送通知服务提供...

    xmpp Qt源码包

    4. **设计服务器架构**:理解XMPP服务器的工作原理,设计服务器的核心架构,包括连接管理、认证机制(如PLAIN、DIGEST-MD5等)、资源绑定、会话管理、路由规则等。 5. **实现服务器接口**:利用qxmpp库提供的API,...

    AndroidXMPP-master

    5. **XMPP Connection Management**:建立和维护到XMPP服务器的连接是关键步骤,通常涉及TCP连接的建立、认证过程(如PLAIN、DIGEST-MD5或TLS/SSL加密)、心跳保活以及断线重连策略。 6. **Presence and Roster ...

    iOS的XMPP聊天Demo

    1. **XMPP框架基础**:首先,你需要了解XMPP框架的工作原理,如连接服务器(通常使用XMPPTCPConnection)、认证过程(如SASL认证)以及如何处理XML流。 2. **好友列表管理**:在Demo中,实现了获取好友列表的功能,...

    基于XMPP协议的Qt聊天程序

    通过学习和分析这个项目,不仅可以掌握XMPP协议的工作原理,还能深入理解Qt库的使用,提升C++编程和即时通讯应用开发的能力。对于想要从事即时通讯软件开发的工程师来说,这是一个极好的学习资源。

    XMPP协议中文帮助文档

    这些库通常提供对XMPP协议的抽象,简化了开发过程。 这份"XMPP协议中文帮助文档"将详细解释以上各点,为开发者提供清晰的指引,帮助他们理解和实现XMPP相关的功能。对于需要在项目中集成即时通讯特性的开发者来说,...

    XMPP高级编程——使用JavaScript和jQuery.pdf

    #### 五、XMPP的工作原理 - **XMPP的通信格式**:XMPP使用XML作为通信格式,这意味着所有的数据都是以XML文档的形式传递的。这种格式的好处在于它的可扩展性和人类可读性。 - **XMPP的流模型**:在XMPP中,通信数据...

    xmpp框架文件!@_@

    源代码分析可以帮助理解XMPP协议的工作原理,以及如何在实际项目中实现这些功能。而提供的工具则可能包含示例客户端、服务器配置指南、测试工具等,以加速开发过程。 总的来说,这个压缩包提供的资源对于想要深入...

    xmpp协议+ios

    在 iOS 开发中,开发者通常会使用开源的 XMPP 框架,如 XMPPFramework,来简化集成XMPP协议的工作。这些框架提供了对象化的 API,使得开发者可以轻松处理连接、认证、发送和接收消息等任务。 集成 XMPP 协议时,...

    xmpp 缺省Jar包

    2. **coherence-work.jar**:这个文件可能是Coherence工作线程或服务的实现,它包含了处理任务调度、并发控制和工作线程池的相关代码。在XMPP应用中,这类库可以支持后台处理任务,例如处理离线消息、用户状态更新等...

    XMPP源代码

    - 源代码中可能包含如何初始化客户端、连接服务器、发送和接收消息、管理用户状态等示例,这对于初学者来说非常有用,可以帮助快速理解XMPP通信过程。 5. **安全性**: - XMPP支持SSL/TLS加密,保证了数据传输的...

    Java开发 基于Xmpp的IM即时通讯项目

    3. XMPP协议:理解其工作原理和基本操作。 4. Smack库使用:熟练运用Smack API进行连接、会话管理和消息传递。 5. UI设计:使用XML布局文件创建用户友好的界面。 6. 网络编程:处理异步数据传输和错误处理。 在实际...

Global site tag (gtag.js) - Google Analytics