XMPP基本概念-地址空间

一个实体可以使任何一个被认为是一个网络端点的东西(比如说网络上的一个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很像邮件地址,比如说[email protected]/library,[email protected].在JID的构成部分中,域名是必须的,根据内容,节点名以及资源名有可能不用指定。

域名通常表示一个实体名字,比如说服务器,组件或者插件。
节点名通常表示域内的一个特殊的用户。它还可以用来表示其他的东西,比如说在聊天室的房间名字。
资源名通常表示客户端的一个连接,对于客户端而言,每一个连接都被赋予一个资源名。
比如说[email protected]的用户从两个地方(study,library)建立了两个连接,那么他的两个连接将会被标记为[email protected]/study,[email protected]/library.同节点名一样,资源名可以用来标记其他东西,比如说聊天室里面特定的用户。

JID分成两种类型,一个是纯JIDs,一个是全JIDs,全JID通常是针对特定的实体的。而纯JID只是单纯的去掉了全JID的资源名部分。在某些情况下,纯JID和全JID是一样的。比如说要定位服务器或者特定的多人聊天室的时候。在传送信息的时候,发给纯JID得信息将会发送到一个或者多个用户,如果用户不在线,信息将会作为离线信息进行保存,关于离线信息将会在后面进行讲解。发给全JID的信息将会直接发给特定的用户。




你可能感兴趣的:(XMPP,地址空间,JID)