XMPP之添加好友请求报文
来源:互联网 发布:3d效果图软件 代码 编辑:程序博客网 时间:2024/04/30 12:08
Presence.Type有七种 available (默认)用户空闲状态,即在线 unavailable 用户没空看消息,即离线 subscribe 请求订阅别人,即请求加对方为好友 subscribed 统一被别人订阅,也就是确认被对方加为好友 unsubscribe 他取消订阅别人,请求删除某好友 unsubscribed 拒绝被别人订阅,即拒绝对方的添加请求 error -- 当前状态packet有错误好友双方对彼此的状态,有网友总结如下: none:是用户和自己roster中的好友彼此不关心,既不想把自己的presence状态告诉对方,也不愿意收到对方presence更新消息 to:知道别人的出席消息,而别人不知道自己的出席信息 from:别人知道自己的出席信息, 但自己不知道别人的出席信息 Both:即收取对方状态更新,又将自己的更新告知对方 Remove :将对方干掉,不再关心他的任何信息。zxl1添加zxl2,加到Friends组,备注zxl2,C:client S:serverzxl1向zxl2发送添加请求Presence.Type.subscribe 订阅关系:nonezxl1->C: <iq id="zR0f2-29" type="set"> <query xmlns="jabber:iq:roster"> <item jid="zxl2@user-20160421db" name="zxl2"> <group>Friends</group> </item> </query> </iq> S: <iq type="set" id="632-3020" to="zxl1@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl2@user-20160421db" name="zxl2" subscription="none"> <group>Friends</group> </item> </query> </iq> zxl1->C:TCP S:<iq type="result" id="zR0f2-29" to="zxl1@user-20160421db/Spark"/> zxl1-> C: <presence id="zR0f2-30" to="zxl2@user-20160421db" type="subscribe"> <x xmlns="vcard-temp:x:update"> <photo>ba8c94a333af7a23d9e44c41b2aa22dd2224dadc</photo> </x> <x xmlns="jabber:x:avatar"> <hash>ba8c94a333af7a23d9e44c41b2aa22dd2224dadc</hash> </x> </presence> S: <iq type="set" id="331-3022" to="zxl1@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl2@user-20160421db" name="zxl2" ask="subscribe" subscription="none"> <group>Friends</group> </item> </query> </iq> zxl1->C:TCP之后就分为3个场景场景一:zxl2收到zxl1的请求,拒绝zxl1 订阅关系:none S: <presence id="SIuGQ-28" to="zxl1@user-20160421db" type="unsubscribe"> <x xmlns="vcard-temp:x:update"> <photo>a76bac95d8fe05fb3df6142bc5cac14ce660345d</photo> </x> <x xmlns="jabber:x:avatar"> <hash>a76bac95d8fe05fb3df6142bc5cac14ce660345d</hash> </x> </presence>场景二:zxl2收到zxl1的请求,zxl2答应,zxl1拒绝 1.zxl2收到zxl1的请求,zxl2答应 订阅关系:zxl1:to zxl2:from C: <iq id="A7O3Y-27" type="get"> <ping xmlns='urn:xmpp:ping' /> </iq> S: <iq type="result" id="A7O3Y-27" to="zxl2@user-20160421db/Spark"/> C: TCP C: <iq id="A7O3Y-28" type="set"> <query xmlns="jabber:iq:roster"> <item jid="zxl1@user-20160421db" name=""> <group>Friends</group> </item> </query> </iq> S: <iq type="set" id="971-3086" to="zxl2@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl1@user-20160421db" name="" subscription="from"> <group>Friends</group> </item> </query> </iq> C: TCP S: <iq type="result" id="A7O3Y-28" to="zxl2@user-20160421db/Spark"/> C: <presence id="A7O3Y-29" to="zxl1@user-20160421db" type="subscribe"> <x xmlns="vcard-temp:x:update"> <photo>a76bac95d8fe05fb3df6142bc5cac14ce660345d</photo> </x> <x xmlns="jabber:x:avatar"> <hash>a76bac95d8fe05fb3df6142bc5cac14ce660345d</hash> </x> </presence> S: <iq type="set" id="505-3088" to="zxl2@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl1@user-20160421db" name="" ask="subscribe" subscription="from"> <group>Friends</group> </item> </query> </iq> C: <presence id="A7O3Y-30" to="zxl1@user-20160421db" type="subscribed"> <x xmlns="vcard-temp:x:update"> <photo>a76bac95d8fe05fb3df6142bc5cac14ce660345d</photo> </x> <x xmlns="jabber:x:avatar"> <hash>a76bac95d8fe05fb3df6142bc5cac14ce660345d</hash> </x> </presence> S: TCP2.zxl1添加zxl2,zxl2答应,zxl1拒绝 zxl1:from zxl2:to C: <presence id="RIdep-27" to="zxl2@user-20160421db" type="unsubscribe"> <x xmlns="vcard-temp:x:update"> <photo>ba8c94a333af7a23d9e44c41b2aa22dd2224dadc</photo> </x> <x xmlns="jabber:x:avatar"> <hash>ba8c94a333af7a23d9e44c41b2aa22dd2224dadc</hash> </x> </presence> S: <iq type="set" id="278-3097" to="zxl1@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl2@user-20160421db" name="zxl2" ask="unsubscribe" subscription="from"> <group>Friends</group> </item> </query> </iq> C: TCP C: <iq id="RIdep-28" type="get"><ping xmlns='urn:xmpp:ping' /></iq> S: <iq type="result" id="RIdep-28" to="zxl1@user-20160421db/Spark"/> C: TCP C: <iq id="RIdep-29" type="get"><ping xmlns='urn:xmpp:ping' /></iq> S: <iq type="result" id="RIdep-29" to="zxl1@user-20160421db/Spark"/> C: TCP C: <iq id="RIdep-30" type="get"><ping xmlns='urn:xmpp:ping' /></iq> S: <iq type="result" id="RIdep-30" to="zxl1@user-20160421db/Spark"/> C: TCP场景三:zxl1添加zxl2,zxl2答应,zxl1答应,两者关系bothzxl2收到zxl1的请求,zxl2答应 订阅关系:zxl1:to zxl2:from 同场景二的第1步zxl1添加zxl2,zxl2答应,zxl1答应 ,订阅关系:both C: <presence id="gGoyI-33" to="zxl2@user-20160421db" type="subscribed"> <x xmlns="vcard-temp:x:update"> <photo>d502a48d3e02f421269f9b1393c1f0cd825a8e4f</photo> </x> <x xmlns="jabber:x:avatar"> <hash>d502a48d3e02f421269f9b1393c1f0cd825a8e4f</hash> </x> </presence> S: <iq type="set" id="456-431" to="zxl1@user-20160421db/Spark"> <query xmlns="jabber:iq:roster"> <item jid="zxl2@user-20160421db" name="zxl2" subscription="both"> <group>Friends</group> </item> </query> </iq>
0 0
- XMPP之添加好友请求报文
- XMPP之添加好友
- xmpp 添加用户 添加好友请求 删除好友
- ios,xmpp 添加好友与好友请求处理
- IOS使用XMPP最新教程(五)添加好友和接受好友请求
- XMPP之好友获取
- XMPP之好友聊天
- XMPP之删除好友
- xmpp-iOS-添加好友和删除好友
- xmpp 添加好友 好友状态监听
- XMPP之登录报文
- XMPP之文件传输报文
- XMPP添加好友相关文章一篇
- XMPP iOS客户端 添加好友 (3)
- iOS XMPP研究探索:添加好友
- XMPP学习记录五:添加好友和删除好友
- XMPP系列(三)---获取好友列表、添加好友
- 请求报文之GET请求报文和POST请求报文
- [机房练习赛4.4] area 扫描线
- centos+flask+uwsgi+nginx+supervisor部署小结
- C++作业4
- WiFi驱动(4)SDIO驱动SDIO卡的扫描
- 111. Minimum Depth of Binary Tree
- XMPP之添加好友请求报文
- js 小记
- eclipse快捷键
- XMPP之登录报文
- 死锁四个必要条件及死锁的预防、检测、避免、解除
- 斐波那契查找
- linux文件操作命令
- 人工智能的创业方向到底怎么选?
- XMPP之文件传输报文