`

XMPP核心协议学习心得2

    博客分类:
  • XMPP
 
阅读更多

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>

 

 

 

分享到:
评论

相关推荐

    xmpp核心协议分析(openfire)

    openfire+smack即时通讯使用的xmpp核心协议进行分析

    XMPP_协议介绍

    XMPP_协议介绍,手机客户端需要实现即时通信功能,在通信协议上采用开放的Jabber(XMPP)协议,整个XMPP协议最为核心也是最为复杂的部分是Subscription的运行机制,抓取了一下相关的通信协议报文,供开发时候参考。

    xmpp客户端协议实现源代码

    2. **核心组件**:XMPP的核心组件包括Stream Management(流管理)、Resource Binding(资源绑定)、Session Establishment(会话建立)和Presence(在线状态)。 3. **认证与安全**:XMPP使用SASL(Simple ...

    XMPP协议中文参考指南

    XMPP 协议中文参考指南 XMPP(Extensible Messaging and Presence Protocol)是一种基于 XML 的协议,用于实时交换消息和出席信息。该协议的核心功能定义在 RFC 3920 中,包括 XML 流、TLS 和 SASL 加密、流的根...

    XMPP协议(可扩展消息出席协议):核心.doc

    ### XMPP协议(可扩展消息出席协议):核心知识点解析 #### 一、绪论 **1.1 概览** XMPP(可扩展消息和出席协议)是一种开放式的XML协议,旨在支持接近实时的消息传递、出席信息以及请求-响应服务。该协议的基本...

    xmpp协议和xmpp扩展协议

    xmpp协议和xmpp扩展协议,chm格式

    XMPP协议中文版

    XMPP协议的核心功能被定义在RFC3920和RFC3921中,分别涉及核心协议和即时消息与出席协议(XMPP-IM)。 通用架构章节阐述了XMPP协议所采用的客户-服务器模型,该模型允许任意两个网络终端通过TCP连接实现结构化信息...

    xmpp学习心得

    XMPP,全称为可扩展消息和出席(存在)协议,是一种用于实时通信和协作的开放标准。它起源于即时信息和出席协议(IMPP)...通过深入学习XMPP,我们可以理解如何构建安全、可扩展的实时通信解决方案,满足各种业务需求。

    xmpp 有关muc协议

    总之,XMPP MUC协议是实现多用户实时交流的核心部分,它为开发者构建聊天应用提供了强大的基础框架和丰富的功能,使得用户可以在各种设备上进行流畅的群组对话。了解并掌握MUC协议对于开发基于XMPP的聊天应用至关...

    xmpp通讯协议demo

    XMPP的核心概念包括以下几点: 1. **XML流**:XMPP是基于XML的数据流协议,所有的交互都是通过XML文档的形式发送的。这种设计使得XMPP具有良好的可读性和扩展性,可以方便地处理复杂的消息结构。 2. **客户端-...

    XMPP 核心 (内附XMPP实例)

    在深入学习XMPP时,阅读“XMPP核心.PDF”文档将有助于理解其基本原理和工作流程。同时,获取并安装agsXMPP库可以帮助开发者实践和理解如何在实际项目中使用XMPP协议。对于想要开发XMPP应用的人员来说,这是一个非常...

    XMPP.rar_xmpp _通讯协议中文

    2. **实体与地址**:在XMPP中,所有参与通信的都是“实体”,如用户、服务器、组件等,它们都有唯一的全局JID(Jabber ID),类似于电子邮件地址,例如`user@domain.tld`。 3. **即时通讯**:XMPP支持一对一和多对...

    xmpp协议详解

    学习和掌握XMPP协议,不仅可以帮助开发者理解实时通信的基础原理,还能为构建自己的即时通讯应用打下坚实的基础。实践XMPP协议,意味着可以创建跨平台、高度集成的通信系统,满足各种业务需求。

    XMPP协议 C#实例

    首先,理解XMPP协议的核心概念至关重要。XMPP基于客户端-服务器架构,通过TCP连接进行数据传输。它定义了两个主要组件:客户端和服务器,以及一系列扩展协议,如Jabber协议,用于实现用户身份验证、会话管理、消息...

    XMPP协议之RFC6120

    RFC6120是描述XMPP核心协议规范的文档,它定义了XMPP的核心协议方法,如XML流的建立和拆除、通道加密、身份验证、错误处理以及消息、网络可用性(存在)和请求-响应交互的通信原语。此外,RFC6120还替代了之前版本的...

    XMPP核心_xmpp_

    - **分层架构**:XMPP的核心协议定义了一个基础框架,允许开发者通过添加模块来实现特定功能,如加密、认证或媒体传输。 - **实时性**:XMPP设计为低延迟,允许近乎即时的信息交换,这在实时通讯场景中至关重要。 ...

    XMPP协议学习资料

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,设计用于提供聊天、即时消息、在线状态管理和文件传输等功能。它以其灵活性和可扩展性为特点,允许开发者根据需要创建各种复杂的...

    xmpp协议相关的jar和中文文档

    - XMPP的核心是基于TCP/IP连接的客户端-服务器架构,用户通过客户端连接到服务器进行消息交换。 - 协议分为两部分:即时消息(IM)和存在状态(Presence),允许用户发送文本消息和了解其他用户的状态(在线、离线...

Global site tag (gtag.js) - Google Analytics