- 浏览: 115979 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (99)
- 网络 (4)
- 搜索 (5)
- linux (8)
- java (5)
- database (4)
- android (13)
- wince (2)
- erlang (2)
- c/c++ (4)
- misc (1)
- 网络 BitTorrent (2)
- 网页截图 (1)
- chrome扩展 (0)
- cocos2d (1)
- android ContentProvider (0)
- linux jni (1)
- ios (1)
- scala (0)
- hbase (1)
- java profiler (1)
- go (1)
- Docker registry (0)
- Docker (2)
- golang (1)
- cas (1)
- rust (1)
- qt (1)
- mesos (1)
- marathon (1)
- Rxjava (0)
- RxJava Scheduler (1)
- windows (1)
- des 3des java nodejs (1)
- kotlin (1)
最新评论
-
TheMatrix:
tab切换时,每次都重新加载onCreateView方法,这个 ...
android FragmentTabHost -
458832194:
...
android FragmentTabHost -
simplehappy:
main_relative.xml和main_linear.x ...
android FragmentTabHost -
tkpc:
感谢Google这么快就搜索到我想要的,楼主的做法是可行的,算 ...
android FragmentTabHost
http://xmpp.org/rfcs/rfc3920.html
http://xmpp.org/extensions/xep-0070.html
NOTE:步骤 1: 客户端初始化流给服务器:
00000003 0.30461928 [500] SENT (21 bytes): <?xml version="1.0"?>
00000004 0.30817932 [500] SENT (131 bytes): <stream:stream to="winxp-www" xml:lang="zh-cn" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
NOTE:步骤 2: 服务器向客户端发送流标签作为应答:
00000005 0.39031130 [500] RECV (185 bytes): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="winxp-www" id="120f62d9" xml:lang="zh-cn" version="1.0">
NOTE:步骤 3: 服务器通知客户端可用的验证机制:
00000006 0.45563573 [500] RECV (425 bytes): <stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>DIGEST-MD5</mechanism>
<mechanism>PLAIN</mechanism>
<mechanism>ANONYMOUS</mechanism>
<mechanism>CRAM-MD5</mechanism>
</mechanisms>
<compression xmlns="http://jabber.org/features/compress">
<method>zlib</method>
</compression>
<auth xmlns="http://jabber.org/features/iq-auth"/>
<register xmlns="http://jabber.org/features/iq-register"/>
</stream:features>
NOTE:步骤 4: 客户端选择一个验证机制:
00000007 0.45910081 [500] SENT (71 bytes): <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="DIGEST-MD5"/>
NOTE:步骤 5: 服务器发送一个 \[BASE64\] 编码的挑战给客户端:
00000008 0.53900111 [500] RECV (212 bytes): <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09IndpbnhwLXd3dyIsbm9uY2U9IkVPSWNLYis4Tm41dmkvek1xTE91T1htTzAxVGdiSWFWalN2RUllMGwiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
解码"realm="winxp-www",nonce="EOIcKb+8Nn5vi/zMqLOuOXmO01TgbIaVjSvEIe0l",qop="auth",charset=utf-8,algorithm=md5-sess"
NOTE:步骤 6: 客户端发送一个\[BASE64\]编码的回应这个挑战:
00000009 0.54505259 [500] SENT (388 bytes): <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9Iuabvue7jzEyMyIscmVhbG09IndpbnhwLXd3dyIsbm9uY2U9IkVPSWNLYis4Tm41dmkvek1xTE91T1htTzAxVGdiSWFWalN2RUllMGwiLGNub25jZT0iMzhiNzM1YzRhOGU4YTFlNzgxM2E2ZWU1ZDRjMzgwY2I1Y2RmMDQxMyIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC93aW54cC13d3ciLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9MzA3YjkxODhjYjU2YzYwNGU4NTc0ZmNlNzE1MDAyYzk=</response>
解码"username="曾经123",realm="winxp-www",nonce="EOIcKb+8Nn5vi/zMqLOuOXmO01TgbIaVjSvEIe0l",cnonce="38b735c4a8e8a1e7813a6ee5d4c380cb5cdf0413",nc=00000001,qop=auth,digest-uri="xmpp/winxp-www",charset=utf-8,response=307b9188cb56c604e8574fce715002c9"
NOTE:步骤 9: 服务器通知客户端验证成功:
00000010 0.61191577 [500] RECV (116 bytes): <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD1iNTIzMjYyZDA0ZjlhOGQzNWEyMmVkYTBjODllZWRmNw==</success>
NOTE:步骤 10: 客户端发起一个新的流给服务器:
00000011 0.61294025 [500] SENT (131 bytes): <stream:stream to="winxp-www" xml:lang="zh-cn" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
NOTE:步骤 11: 服务器发送一个流头信息回应客户端,并附上任何可用的特性(或空的features元素):
00000012 0.61496103 [500] RECV (414 bytes): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="winxp-www" id="120f62d9" xml:lang="zh-cn" version="1.0">
<stream:features>
<compression xmlns="http://jabber.org/features/compress">
<method>zlib</method>
</compression>
NOTE:服务器需要客户端绑定一个资源
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>
</stream:features>
00000013 0.61642641 [500] SENT (86 bytes): <compress xmlns="http://jabber.org/protocol/compress"><method>zlib</method></compress>
00000014 0.65099669 [500] RECV (57 bytes): <compressed xmlns='http://jabber.org/protocol/compress'/>
00000015 0.66114199 [500] SENT (131 bytes): <stream:stream to="winxp-www" xml:lang="zh-cn" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
00000016 0.66510236 [500] RECV (512 bytes): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="winxp-www" id="120f62d9" xml:lang="zh-cn" version="1.0">
<stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>DIGEST-MD5</mechanism>
<mechanism>PLAIN</mechanism>
<mechanism>ANONYMOUS</mechanism>
<mechanism>CRAM-MD5</mechanism>
</mechanisms>
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>
</stream:features>
00000017 0.66659909 [500] SENT (71 bytes): <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="DIGEST-MD5"/>
00000018 0.66999900 [500] RECV (212 bytes): <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09IndpbnhwLXd3dyIsbm9uY2U9InFtcWpQbGhCWE90eTBhR0NmakJvNHJHWlNHVFB1Q1gvYnVWUEppU3giLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
解码"realm="winxp-www",nonce="qmqjPlhBXOty0aGCfjBo4rGZSGTPuCX/buVPJiSx",qop="auth",charset=utf-8,algorithm=md5-sess"
00000019 0.67361242 [500] SENT (388 bytes): <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9Iuabvue7jzEyMyIscmVhbG09IndpbnhwLXd3dyIsbm9uY2U9InFtcWpQbGhCWE90eTBhR0NmakJvNHJHWlNHVFB1Q1gvYnVWUEppU3giLGNub25jZT0iZTBiNmZiNTBiYTMzNTBjNDk3MjJmMjJhYzE2ODcwNjAzZWExZDY3NSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC93aW54cC13d3ciLGNoYXJzZXQ9dXRmLTgscmVzcG9uc2U9NWM5MTEzNDdjYzJiNjMzZWMwMjgzZGY3M2QzOTgxMWU=</response>
解码"username="曾经123",realm="winxp-www",nonce="qmqjPlhBXOty0aGCfjBo4rGZSGTPuCX/buVPJiSx",cnonce="e0b6fb50ba3350c49722f22ac16870603ea1d675",nc=00000001,qop=auth,digest-uri="xmpp/winxp-www",charset=utf-8,response=5c911347cc2b633ec0283df73d39811e"
00000020 0.68257976 [500] RECV (116 bytes): <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD1jMzViYjM4MTBkM2I1MDA3Njc3ODFhNWM3YzRjMmMwMQ==</success>
00000021 0.68359655 [500] SENT (131 bytes): <stream:stream to="winxp-www" xml:lang="zh-cn" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
00000022 0.68648988 [500] RECV (322 bytes): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="winxp-www" id="120f62d9" xml:lang="zh-cn" version="1.0">
<stream:features>
NOTE:服务器需要客户端绑定一个资源
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>
<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>
</stream:features>
NOTE:客户端绑定一个资源
00000023 0.68916351 [500] SENT (112 bytes): <iq type="set" id="sd1">
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>在线交流系统</resource></bind></iq>
NOTE:服务器通知客户端资源绑定成功
00000024 0.70382249 [500] RECV (143 bytes): <iq type="result" id="sd1" to="winxp-www/120f62d9">
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
<jid>曾经123@winxp-www/在线交流系统</jid>
</bind></iq>
00000025 0.70752007 [500] SENT (100 bytes): <iq type="set" id="sd2" to="winxp-www">
<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
00000026 0.71029431 [500] RECV (131 bytes): <iq type="result" id="sd2" from="winxp-www" to="曾经123@winxp-www/在线交流系统">
<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
00000027 0.71279085 [500] SENT (101 bytes): <iq type="get" id="sd3" to="winxp-www">
<query xmlns="http://jabber.org/protocol/disco#items"/></iq>
00000028 0.71514571 [500] SENT (64 bytes): <iq type="get" id="sd4"><query xmlns="jabber:iq:roster"/></iq>
00000029 0.71535003 [500] SENT (65 bytes): <iq type="get" id="sd5"><query xmlns="jabber:iq:privacy"/></iq>
00000030 0.72743601 [500] RECV (484 bytes): <iq type="result" id="sd3" from="winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#items">
<item jid="search.winxp-www" name="User Search"/>
<item jid="pubsub.winxp-www" name="Publish-Subscribe service"/>
<item jid="proxy.winxp-www" name="Socks 5 Bytestreams Proxy"/>
<item jid="manager.winxp-www" name="Client Control Manager"/>
<item jid="conference.winxp-www" name="Public Chatrooms"/>
<item jid="updater.winxp-www" name="Spark Updater"/></query></iq>
00000031 0.73308045 [500] SENT (107 bytes): <iq type="get" id="sd6" to="search.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000032 0.73496360 [500] SENT (107 bytes): <iq type="get" id="sd7" to="pubsub.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000033 0.73500723 [500] SENT (106 bytes): <iq type="get" id="sd8" to="proxy.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000034 0.73605841 [500] SENT (108 bytes): <iq type="get" id="sd9" to="manager.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000035 0.73978013 [500] SENT (112 bytes): <iq type="get" id="sd10" to="conference.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000036 0.73995262 [500] SENT (109 bytes): <iq type="get" id="sd11" to="updater.winxp-www">
<query xmlns="http://jabber.org/protocol/disco#info"/></iq>
00000037 0.76102084 [500] RECV (93 bytes): <iq type="result" id="sd4" to="曾经123@winxp-www/在线交流系统">
<query xmlns="jabber:iq:roster"/></iq>
00000038 0.77130777 [500] RECV (467 bytes): <iq type="result" id="sd5" to="曾经123@winxp-www/在线交流系统">
<query xmlns="jabber:iq:privacy">
<list name="invisible"/></query></iq>
<iq type="result" id="sd6" from="search.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="directory" type="user" name="User Search"/>
<feature var="jabber:iq:search"/>
<feature var="http://jabber.org/protocol/disco#info"/>
<feature var="http://jabber.org/protocol/rsm"/>
</query></iq>
00000039 0.79031312 [500] RECV (2049 bytes): <iq type="result" id="sd7" from="pubsub.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="pubsub" name="Publish-Subscribe service" type="service"/>
<feature var="http://jabber.org/protocol/pubsub"/>
<feature var="http://jabber.org/protocol/pubsub#collections"/><feature var="http://jabber.org/protocol/pubsub#config-node"/>
<feature var="http://jabber.org/protocol/pubsub#create-and-configure"/>
<feature var="http://jabber.org/protocol/pubsub#create-nodes"/>
<feature var="http://jabber.org/protocol/pubsub#delete-nodes"/>
<feature var="http://jabber.org/protocol/pubsub#get-pending"/>
<feature var="http://jabber.org/protocol/pubsub#instant-nodes"/>
<feature var="http://jabber.org/protocol/pubsub#item-ids"/>
<feature var="http://jabber.org/protocol/pubsub#meta-data"/>
<feature var="http://jabber.org/protocol/pubsub#modify-affiliations"/>
<feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"/>
<feature var="http://jabber.org/protocol/pubsub#multi-subscribe"/>
<feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"/>
<feature var="http://jabber.org/protocol/pubsub#persistent-items"/>
<feature var="http://jabber.org/protocol/pubsub#presence-notifications"/>
<feature var="http://jabber.org/protocol/pubsub#publish"/>
<feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"/>
<feature var="http://jabber.org/protocol/pubsub#purge-nodes"/>
<feature var="http://jabber.org/protocol/pubsub#retract-items"/>
<feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"/>
<feature var="http://jabber.org/protocol/pubsub#retrieve-default"/>
<feature var="http://jabber.org/protocol/pubsub#retrieve-items"/>
<feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"/>
<feature var="http://jabber.org/protocol/pubsub#subscribe"/>
<feature var="http://jabber.org/protocol/pubsub#subscription-options"/>
<feature var="http://jabber.org/protocol/pubsub#default_access_model_open"/>
<feature var="http://jabber.org/protocol/disco#info"/>
</query></iq>
00000040 0.79072374 [500] RECV (650 bytes): <iq type="result" id="sd8" from="proxy.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="proxy" name="SOCKS5 Bytestreams Service" type="bytestreams"/>
<feature var="http://jabber.org/protocol/bytestreams"/>
<feature var="http://jabber.org/protocol/disco#info"/></query>
</iq><iq type="result" id="sd9" from="manager.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="manager" type="text" name="Client Control Manager"/>
<feature var="broadcast"/><feature var="file-transfer"/>
<feature var="muc"/><feature var="vcard"/></query></iq>
00000041 0.79181653 [500] RECV (777 bytes): <iq type="result" id="sd10" from="conference.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="conference" name="Public Chatrooms" type="text"/>
<identity category="directory" name="Public Chatroom Search" type="chatroom"/>
<feature var="http://jabber.org/protocol/muc"/>
<feature var="http://jabber.org/protocol/disco#info"/>
<feature var="http://jabber.org/protocol/disco#items"/>
<feature var="jabber:iq:search"/>
<feature var="http://jabber.org/protocol/rsm"/>
</query></iq>
<iq type="result" id="sd11" from="updater.winxp-www" to="曾经123@winxp-www/在线交流系统">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="updater" type="text" name="Spark Updater"/>
<feature var="jabber:iq:updater"/></query></iq>
00000042 0.87957603 [500] SENT (129 bytes): <presence><x xmlns="jabber:x:avatar"><hash>8846ea523d1185eb903bfc2218c153a7cf3bbf70</hash></x><priority>8</priority></presence>
00000043 23.94870186 [500] SENT (145 bytes): <presence><x xmlns="jabber:x:avatar"><hash>8846ea523d1185eb903bfc2218c153a7cf3bbf70</hash></x><priority>6</priority><show>dnd</show></presence>
00000044 26.57085228 [500] SENT (146 bytes): <presence><x xmlns="jabber:x:avatar"><hash>8846ea523d1185eb903bfc2218c153a7cf3bbf70</hash></x><priority>4</priority><show>away</show></presence>
00000045 28.89712143 [500] SENT (32 bytes): <presence type="unavailable"/>
00000046 28.90606499 [500] SENT (89 bytes): <iq type="set"><query xmlns="jabber:iq:privacy"><active name="invisible"/></query></iq>
00000047 28.90665627 [500] SENT (129 bytes): <presence><x xmlns="jabber:x:avatar"><hash>8846ea523d1185eb903bfc2218c153a7cf3bbf70</hash></x><priority>8</priority></presence>
00000048 28.96957779 [500] RECV (118 bytes): <iq type="result" to="曾经123@winxp-www/在线交流系统">
<query xmlns="jabber:iq:privacy"><active name="invisible"/></query></iq>
00000049 30.80803490 [500] SENT (1 bytes):
00000050 34.01837921 [500] SENT (72 bytes): <iq type="set"><query xmlns="jabber:iq:privacy"><active/></query></iq>
00000051 34.02230835 [500] RECV (47 bytes): <iq type="result" to="曾经123@winxp-www/在线交流系统"/>
00000052 34.02594757 [500] SENT (129 bytes): <presence>
<x xmlns="jabber:x:avatar"><hash>8846ea523d1185eb903bfc2218c153a7cf3bbf70</hash></x>
<priority>8</priority>
</presence>
00000053 46.84116745 [500] SENT (32 bytes): <presence type="unavailable"/>
00000054 46.84132004 [500] SENT (16 bytes): </stream:stream>
相关推荐
在Android平台上实现XMPP(Extensible Messaging and Presence Protocol)客户端是一项常见的任务,因为XMPP是一种广泛使用的即时通讯协议,尤其适用于构建实时通信应用,如聊天、视频通话等。本篇文章将深入探讨...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,最初源自开源项目Jabber。这个协议主要用于即时消息传递(IM)和在线状态(Presence)的探测。XMPP的设计理念是开放、可扩展,...
XIFF(eXtensible Internet Framework)是Flex中一个用于处理XMPP协议的库,它允许开发者在Flex应用程序中实现XMPP功能,比如创建用户会话、发送和接收消息、管理用户状态等。XIFF为Flex提供了与XMPP服务器交互的...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准协议,用于即时通信(IM)和在线状态服务。这个“XMPP.zip”文件显然包含了关于如何使用XMPP实现即时通讯,尤其是仿照QQ功能的相关资源...
XMPP(可扩展消息处理现场协议)是一种基于XML的实时通信协议,最初源自开源项目Jabber。它的设计目的是用于即时消息(IM)服务和在线状态检测。XMPP的核心概念是构建在TCP/IP协议之上的XML流,使得数据在客户端和...
这个“XMPP.rar_xmpp 通讯协议中文”压缩包包含了一个名为“XMPP.doc”的文档,很可能是关于XMPP协议的中文详细解读。 XMPP最初由Jabber项目开发,后来被IETF标准化,成为了RFC 6120、6121和6122。它的设计目标是...
XMPP(Extensible Messaging and Presence Protocol,可扩展消息与存在协议)是一种基于XML的实时通信协议,被广泛用于即时通讯和在线状态管理。这个压缩包包含了一份关于XMPP核心概念的详细PDF文档以及一个名为...
**XMPP (可扩展消息和出席协议)** 是一种基于XML的实时通信协议,起初由Jabber开源社区创建,后来成为Internet Engineering Task Force (IETF) 的即时消息和出席信息技术的一部分。RFC 3920是XMPP的核心协议文档,...
### XMPP学习入门笔记知识点详解 #### 一、XMPP简介 XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的即时通讯协议。它最初由Jabber发展而来,并于2004年成为国际标准(RFC 3920 和 RFC 3921)...
### XMPP-RFC3921(中文)关键知识点解析 #### 一、绪论与概览 **标题与描述解读:** - **标题**:“XMPP-RFC3921(中文)”直接指出了该文档是关于XMPP(可扩展消息与出席协议)的标准规范文档,特别注明为中文版,...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时消息、在线状态管理和多人聊天等场景。XEP(XMPP Extension Protocols)是XMPP的扩展协议,用来增加XMPP的基本功能...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息和在线状态的传递。在本文中,我们将深入探讨如何使用C#语言实现XMPP协议,并通过一个名为"ConsoleXmpp"的示例...
《可扩展消息和出席信息协议(XMPP)中文版》文档详细阐述了XMPP协议的核心功能,这是一种基于XML流的实时通信协议,适用于构建即时消息和出席信息应用,以满足RFC 2779的需求。XMPP的设计目标是提供一个开放、可...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时通讯、在线状态管理和聊天应用。在iOS平台上实现XMPP的注册功能,通常涉及到以下几个关键知识点: 1. **XMPP框架...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息传递和在线状态管理。这个“xmpp通讯协议demo”是展示如何在Android平台上利用XMPP协议进行即时通讯的一个示例...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时通讯、VoIP、在线状态管理等领域。作为一个专业的IT行业大师,我很高兴为你深入解析XMPP客户端开发库及其相关知识...
【XMPP简介】 XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,最初由Jabber项目创建,后来被IETF接纳为互联网标准草案。它旨在提供安全、可扩展且灵活的即时通讯(IM)和在线状态...
### XMPP正式RFC标准3920:可扩展的消息与出席信息协议 #### 概述 **XMPP正式RFC标准3920**是互联网工程任务组(IETF)发布的一项标准,它定义了可扩展消息与出席信息协议(XMPP)的核心功能,该协议允许在任意两...
### XMPP:终极指南 #### 一、简介与概述 《XMPP:终极指南》是一本全面介绍XMPP(可扩展消息处理协议)及其在实时应用中的应用的权威书籍。XMPP是一种基于XML的开放标准协议,用于实现即时消息(IM)、在线状态通知...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时通讯(IM)系统。在这个“xmpp仿qq完整iOS项目”中,开发者已经创建了一个模仿QQ功能的应用程序,提供了详细的代码...