一个实体可以使任何一个被认为是一个网络端点的东西(比如说网络上的一个ID),而且它是通过XMPP进行通信的,所以这些实体都有一个具有唯一性的地址,并符合RFC2396规范要求的格式。由于历史原因,一个XMPP实体的地址被称为Jabber Identifier或者JID,一个合法的JID包括一组排列好的元素,包括域名(domain identifier),节点名(node identifier)以及资源名(resource identifier)。
JID的语法定义:
jid=[node"@"]domain["/"resource]
domain=fdqn/address-literal
fdqn={sub-domain1*{"."sub-domain}}
sub-domain={internationalized domain label}
address-literal=IPv4address/IPv6address
简单的说,JID很像邮件地址,比如说william_duan@jabber.org/library,test_account@jabber.org.在JID的构成部分中,域名是必须的,根据内容,节点名以及资源名有可能不用指定。
域名通常表示一个实体名字,比如说服务器,组件或者插件。
节点名通常表示域内的一个特殊的用户。它还可以用来表示其他的东西,比如说在聊天室的房间名字。
资源名通常表示客户端的一个连接,对于客户端而言,每一个连接都被赋予一个资源名。
比如说william_duan@jabber.org的用户从两个地方(study,library)建立了两个连接,那么他的两个连接将会被标记为william_duan@jabber.org/study,william_duan@jabber.rog/library.同节点名一样,资源名可以用来标记其他东西,比如说聊天室里面特定的用户。
JID分成两种类型,一个是纯JIDs,一个是全JIDs,全JID通常是针对特定的实体的。而纯JID只是单纯的去掉了全JID的资源名部分。在某些情况下,纯JID和全JID是一样的。比如说要定位服务器或者特定的多人聊天室的时候。在传送信息的时候,发给纯JID得信息将会发送到一个或者多个用户,如果用户不在线,信息将会作为离线信息进行保存,关于离线信息将会在后面进行讲解。发给全JID的信息将会直接发给特定的用户。
分享到:
相关推荐
通过深入解析XMPP-RFC3921(中文)文档,我们不仅了解了XMPP协议的基本概念和核心功能,还学习了如何在实际应用中正确使用XMPP协议。无论是在个人通讯还是企业级应用中,掌握这些知识点都是非常重要的。希望本文能够...
XMPP中的地址空间基于XML命名空间的概念,包括节点、域和资源三个部分。节点标识用户或服务,域标识服务器,资源标识客户端的具体实例。这些组成部分组合在一起形成了完整的XMPP地址,例如:`node@domain/resource`...
资源绑定是XMPP中的一个重要概念,允许客户端通过选择不同的资源标识符来区分同一用户的不同会话。例如,用户Alice可能同时使用她的手机和电脑登录到同一个XMPP账户,此时就需要为这两个设备分配不同的资源标识符。 ...
消息在XMPP中是最基本的通信单元,用于携带文本、媒体等数据。消息可以有多种类型,包括聊天、群聊、错误、通知等。每个消息都可以包含子元素,如主题(subject)、主体(body)和线索(thread),以增强消息的表达...
在绪论部分,文档介绍了XMPP的基本概念和背景,包括其与Jabber开源社区的关系以及后来成为IETF(互联网工程任务组)标准的历程。XMPP协议的核心功能被定义在RFC3920和RFC3921中,分别涉及核心协议和即时消息与出席...
- **扩展性**: XMPP允许通过定义新的XML命名空间来扩展功能,如文件传输、多用户聊天等。 2. **XMPP工作流程**: - **连接与认证**: 客户端首先连接到XMPP服务器,然后进行身份验证,通常支持用户名/密码、OAuth...
要使用这个项目,你需要了解XMPP的基本概念,熟悉iOS开发环境,能够设置和配置XMPP服务器,并能理解并修改项目中的代码以适应自己的需求。此外,如果你不熟悉XMPP,可能还需要查阅相关文档以理解具体的协议细节。
RFC 3920还包括了关于IANA(Internet Assigned Numbers Authority)注册项目的细节,这涉及到XMPP相关的名称空间和标识符的管理。 #### 七、参考文献与附件 文档最后列出了参考文献、节点准备方法、资源准备方法、...
**XMPP的基本概念:** 1. **实体(Entity)**:XMPP系统中的任何参与者或服务,如用户、服务器、代理等。 2. **JID(Jabber ID)**:XMPP的唯一标识符,类似于电子邮件地址,如`user@example.com`,包含用户名、域名...
2. **术语**:文中涉及的术语包括服务器、客户端、网关和网络等关键概念,这些构成了XMPP的基本架构。服务器负责处理多个客户端连接,网关用于不同协议之间的转换,而客户端则是用户界面,通过网络与服务器进行通信...
其中,节点名和域名共同构成了一个基本的地址标识,用于标识一个具体的XMPP实体;资源名则用于进一步细化地址,以区分同一实体下的不同资源。 #### 三、XMPP通信架构 尽管XMPP本身并不依赖于特定的网络架构,但它...
这个文档集可能是对XMPP协议的详细解释,包括其核心概念、工作原理以及如何在实际应用中部署和使用。 XMPP的核心特性包括: 1. **可扩展性**:XMPP基于XML,允许通过定义新的XML元素和命名空间来扩展协议,以适应...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于实现即时消息(IM)和在线状态服务。...对于初学者而言,理解XMPP的基本元素和流概念是开始开发相关应用的基础。
- **基本概念**:XMPP使用连续的XML元素流来表示通信内容。每个XML流都始于一个启动标记(`<stream:stream>`),并在通信结束时关闭(`</stream:stream>`)。 - **特性**: - **持久性**:确保数据在传输过程中不会...
7. **扩展性**:XMPP的可扩展性是其一大特点,通过定义新的XML元素和命名空间,可以轻松添加新功能,如多用户聊天(MUC)、文件传输、音视频通话等。 在源码中,你可能会看到以下关键组件和概念: 1. **连接管理器...
下面我们将探讨XMPP协议的核心概念、Socket通信的基础、以及如何在C/S架构中应用这些知识。 首先,XMPP协议是基于TCP/IP协议之上的,它定义了一种标准格式来传输数据,特别是针对即时通讯中的消息和状态信息。XMPP...
2. **地址空间**:XMPP使用类似电子邮件地址的格式来标识用户,即`username@domain/resource`。这里,`username`表示用户名,`domain`表示服务器域名,而`resource`用于标识同一用户下的多个设备或会话。 3. **数据...
其内容广泛,包括了从协议的基本架构、地址空间、到TLS(传输层安全协议)和SASL(简单认证与安全层协议)的使用,资源绑定,服务器回拨,以及XML的使用规范等关键知识点。 在XMPP协议的通用架构中,通常认为是一种...
文件名中的“JJ”代表JeCat-Jabber,而“0.1.1”可能表示软件的版本号,表明这是项目的早期版本,可能包含基本功能但仍有改进空间。 要成功部署并运行JeCat-Jabber,你需要有基本的PHP编程知识,以及对XMPP协议的...