4.资源绑定
服务器向客户端声明资源绑定特性:
<stream:stream
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
id='c2s_345'
from='example.com'
version='1.0'>
<stream:features>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</stream:features>
客户端请求资源绑定
<iq type='set' id='bind_1'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
</iq>
或者指定绑定的资源ID
<iq type='set' id='bind_2'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>resourceid</resource>
</bind>
</iq>
此时有两种:
成功
服务器反馈绑定成功
<iq type='result' id='bind_2'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<jid>somenode@example.com/resourceid</jid>
</bind>
</iq>
注意 此时 id已经被服务器修改成'bind_2' 而不是指定resourceid
失败
资源ID不能处理
<iq type='error' id='bind_2'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>someresource</resource>
</bind>
<error type='modify'>
<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
或
客户端不允许绑定一个资源
<iq type='error' id='bind_2'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>someresource</resource>
</bind>
<error type='cancel'>
<not-allowed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
或资源ID已经在使用
<iq type='error' id='bind_2'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>someresource</resource>
</bind>
<error type='cancel'>
<conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
相关推荐
openfire+smack即时通讯使用的xmpp核心协议进行分析
XMPP_协议介绍,手机客户端需要实现即时通信功能,在通信协议上采用开放的Jabber(XMPP)协议,整个XMPP协议最为核心也是最为复杂的部分是Subscription的运行机制,抓取了一下相关的通信协议报文,供开发时候参考。
2. **核心组件**:XMPP的核心组件包括Stream Management(流管理)、Resource Binding(资源绑定)、Session Establishment(会话建立)和Presence(在线状态)。 3. **认证与安全**:XMPP使用SASL(Simple ...
XMPP 协议中文参考指南 XMPP(Extensible Messaging and Presence Protocol)是一种基于 XML 的协议,用于实时交换消息和出席信息。该协议的核心功能定义在 RFC 3920 中,包括 XML 流、TLS 和 SASL 加密、流的根...
### XMPP协议(可扩展消息出席协议):核心知识点解析 #### 一、绪论 **1.1 概览** XMPP(可扩展消息和出席协议)是一种开放式的XML协议,旨在支持接近实时的消息传递、出席信息以及请求-响应服务。该协议的基本...
xmpp协议和xmpp扩展协议,chm格式
XMPP协议的核心功能被定义在RFC3920和RFC3921中,分别涉及核心协议和即时消息与出席协议(XMPP-IM)。 通用架构章节阐述了XMPP协议所采用的客户-服务器模型,该模型允许任意两个网络终端通过TCP连接实现结构化信息...
XMPP,全称为可扩展消息和出席(存在)协议,是一种用于实时通信和协作的开放标准。它起源于即时信息和出席协议(IMPP)...通过深入学习XMPP,我们可以理解如何构建安全、可扩展的实时通信解决方案,满足各种业务需求。
总之,XMPP MUC协议是实现多用户实时交流的核心部分,它为开发者构建聊天应用提供了强大的基础框架和丰富的功能,使得用户可以在各种设备上进行流畅的群组对话。了解并掌握MUC协议对于开发基于XMPP的聊天应用至关...
XMPP的核心概念包括以下几点: 1. **XML流**:XMPP是基于XML的数据流协议,所有的交互都是通过XML文档的形式发送的。这种设计使得XMPP具有良好的可读性和扩展性,可以方便地处理复杂的消息结构。 2. **客户端-...
在深入学习XMPP时,阅读“XMPP核心.PDF”文档将有助于理解其基本原理和工作流程。同时,获取并安装agsXMPP库可以帮助开发者实践和理解如何在实际项目中使用XMPP协议。对于想要开发XMPP应用的人员来说,这是一个非常...
2. **实体与地址**:在XMPP中,所有参与通信的都是“实体”,如用户、服务器、组件等,它们都有唯一的全局JID(Jabber ID),类似于电子邮件地址,例如`user@domain.tld`。 3. **即时通讯**:XMPP支持一对一和多对...
学习和掌握XMPP协议,不仅可以帮助开发者理解实时通信的基础原理,还能为构建自己的即时通讯应用打下坚实的基础。实践XMPP协议,意味着可以创建跨平台、高度集成的通信系统,满足各种业务需求。
首先,理解XMPP协议的核心概念至关重要。XMPP基于客户端-服务器架构,通过TCP连接进行数据传输。它定义了两个主要组件:客户端和服务器,以及一系列扩展协议,如Jabber协议,用于实现用户身份验证、会话管理、消息...
RFC6120是描述XMPP核心协议规范的文档,它定义了XMPP的核心协议方法,如XML流的建立和拆除、通道加密、身份验证、错误处理以及消息、网络可用性(存在)和请求-响应交互的通信原语。此外,RFC6120还替代了之前版本的...
- **分层架构**:XMPP的核心协议定义了一个基础框架,允许开发者通过添加模块来实现特定功能,如加密、认证或媒体传输。 - **实时性**:XMPP设计为低延迟,允许近乎即时的信息交换,这在实时通讯场景中至关重要。 ...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,设计用于提供聊天、即时消息、在线状态管理和文件传输等功能。它以其灵活性和可扩展性为特点,允许开发者根据需要创建各种复杂的...
- XMPP的核心是基于TCP/IP连接的客户端-服务器架构,用户通过客户端连接到服务器进行消息交换。 - 协议分为两部分:即时消息(IM)和存在状态(Presence),允许用户发送文本消息和了解其他用户的状态(在线、离线...