武汉卵l:人。≯硕士学位论文人彳i执行名册设置,服务器比必须发送它);(2)返回一个IQresult给发送的资源表示名册设置成功了;(3)路ttq这_个”subscribed”类型的在线信息节给用户,苗‘先把’from’地址改为联系Lfi‘jf-也JID;然后从所有联系人的可用资源向用户发送i,J.H】的在线信息。<iqtype=’set’to=’contact@192.168.0.5/resource'><queryxmlns=[jabber:iq:roster’><itemjid=’user@XMPPExample.corn’subscription=’from’name=’SomeUser’><group>SomeGroup</group></item></query></iq>●<iqtype=’result’to=’contact@192.168.0.5/resource’id=’set2’/>.<presencefrom=’contact@192.168.0.5’t02’user@IXMPPExample.com’type=’subscribed'/><presencefrom=’contact@】92.】68.0.5/resource’to=’user@:XMPPExample.com’/>步骤9:向用户递送订阅成功的确认信息,向用户可崩的资源广播新的名册,并递送可用的信息节。<presenceto=’user@XMPPExample.com’from=’contact@192.168.0.5’type=’subscribed'/><iqtype2’set’to=’user@l92.168.0.5/resource’><queryxmlns2[jabber:iq:register'><itemjid='contact@l92.168.0.5’subscription=’to’name=’MyContact’><group>MyBuddies</group></item></query></iq><iqtypF’set’to=’user@1<query<item92.168.0.5/msn'>xmlns=[jabber:iq:roster'>武汉理一J:人学硕士学位论文jid=‘contact@192.168.0.5’subscription=’to’name=’MyContact’><group>MyBuddies</group></item></query></iq><presencefrom=’contact④192.168.0.5/resource’to=’user@!XMPPExample.com/resource’/>步骤10:用户客户端确认订阅在线状态成功<presencefrom=’user@XMPPExample.com’2.3.5删除好友流程该流程类似于删除好友的过程,如图4删除好友流程图所示。武汉理T人学硕士学位论文图2-3删除好友流程图步骤1:如果用户想取消对联系人的在线信息的订阅,用户必须发送一个”unsubscribe”类型的在线信息节给联系人。<presenceto=’contact@192.168.0.5’type=’unsubscribe'/>步骤2:作为一个结果,用户的服务器必须发送一个名册推送给这个用户的所有已请求名册的可用资源,包含一个关于这个联系人的更新名册条目,其’subscription’属性设为”none”;并且必须路由这个”unsubscribe”类型的在线信息节给联系人(首先把’from’地址设为用户的纯JID(<user@XMPPExample.com>))。<iqtype=’set’><queryxmlns=:jabber:iq:roster'><itemjid=’contact@192.168.0.5’subscription=’none’name=’MyContact’><group>MyBuddies</group></item></query></iq><presencefrom=’user@XMPPExample.com’to=’contact@192.168.0.5’type=’unsubscfibe7>步骤3:接收到指向联系人的”unsubscribe”类型在线信息节之后,联系人的服务器必须初始化一个名册发送给这个联系人的所有己请求名册的可用资源,武汉理r:人。≯硕j:’’j::何论文包含‘‘个炎于这个用户的名册条日,其’subscription’属。r卜戗改为”none”(如果联系人彳i商J.j}j或未曾请求名册,联系人的服务器必须修改彩玎”条Ij并在下次联系人清求名册|f'f发送那个已修改的条H):并且必须发送这个”unsubscribe”状态改变通知给联系人。<iqtype2’set'><queryxmlns=.jabber:iq:rosterf><itemjid=user@XMPPExample.com’subscription=’none’name=’SomeUser’><group>SomeGroup</group></item></query></iq><presencefrom=’user@XMPPExample.com’to--’contact@192.168.0.5’type=’unsubscribe’/>步骤4:接收到”unsubscribe”类型的在线信息节之后,联系人应该承认收到那个订阅状态通知,要么发送一个”unsubscfibed”类型的在线信息节给用户以证实它,要么发送一个”subscribed”类型的在线信息节给用户否认它;这个步骤不影响订阅状态,但是让联系人的服务器知道它必须不再发送订阅状态变更通知给联系人。步骤5:联系人的服务器接着必须发送一个”unsubscribed”类型的在线信息节给用户;并且应该向用户发送从这个联系人的所有可用资源收到的不可用在线信息。<presencefrom=’contact@192.168.0.5’to=’user@XMPPExample.com’type=’unsubscribed’/><presencefrom=’contact@192.168.0.5/resource’to=’user@XMPPExample.com’type=’unavailable./>步骤6:当用户的服务器收到类型为”unsubscfibed”和”unavailable”的在线信息节,它必须递送它们给用户。<presencefrom---’contact@192.168.0.5’t02user@XMPPExample.com’type=’unsubscribedt/>武汉理j1:人学硕士学位论文<presencefrom=’contact@192.168.0.5/resource’to=’user@XMPPExample.corn’type=’unavailable'/>步骤7:接收到”unsubscribed”类型的在线信息节之后,用户应该承认收到那个订阅状态变更通知,要么向联系人发送一个”unsubscribe”类型的在线信息节以证实它,要么向联系人发送一个”subscribe”的在线信息节以否认它;这步骤不影响订阅状态,但是让用户的服务器知道它必须不在发送订阅状态变更通知给用户。2.3.6用户之间发送消息流程图2-4用户发送消息流程图一个即时消息客户端应该通过提供一个JR)或<message/>节中不同于发送者的’to’属性来指定一个消息的预定接收者。如果这个消息是在回复之前接收到的消息,而接收到的消息是从JR)格式为<user@domain/resource>(例如,在一个聊天会话的上下文中)实体发来的,这个回复消息的’to’地址的值应该是<user@domain/resource>而不是<user@domain>,除非发送者知道(通过在线信息)预定的接收者的资源将不再可用。如果消息是在任何现存的聊天会话或接收到的消息之外被发送的,’to’地址的值应该格式为<user@domain>而不是<user@domain/resource>20
好文档 - 专业文书写作范文服务资料分享网站