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,全称为可扩展消息和出席(存在)协议,是一种用于实时通信和协作的开放标准。它起源于即时信息和出席协议(IMPP)...通过深入学习XMPP,我们可以理解如何构建安全、可扩展的实时通信解决方案,满足各种业务需求。
1. **理解XMPP协议**:阅读XMPP RFC文档(RFC 6120, RFC 6121, RFC 6122等)以了解其核心概念和协议规范。 2. **选择XMPP库**:根据开发语言选择合适的XMPP库,例如Java有Smack,Python有 SleekXMPP,JavaScript有...
Openfire不仅遵循基本的XMPP协议(RFC3920),更进一步实现了XMPP-IM(RFC3921)协议,这使得它能够处理更加复杂的实时通信场景,如用户状态切换、消息订阅与通知等,为用户提供了一个全面的实时通信解决方案。...
TCP/IP心得主要涉及TCP的状态流程图机制、Linux网络协议栈数据收发流程以及ARP和TCP头部解析。在深入探讨这些知识点之前,先简单回顾一下网络协议的层次结构,包括应用层、传输层、网络层、数据链路层以及物理层。 ...
【标题】"chatingroom"揭示的是一款基于局域网的聊天软件,旨在提供一个简易的平台,让网络中的用户能够互相学习、交流心得。这款软件的特点在于它的易用性和实用性,面向的是对网络通信有需求,但又不希望过于复杂...
可能使用XMPP、MQTT等协议进行实时通信,或者利用Firebase等云服务来支持数据同步。为了保障用户隐私,还需要考虑数据加密和安全措施。同时,社交特性也可能包括用户个人资料管理、好友推荐算法、动态分享等复杂功能...