MSN协议研究(二)
PRESENCE SERVICE负责用户状态接收,存储以及转发。当一个PRESENTITY从P1状态变为P2状态时,状态的改变会通过NOTIFICATION转发给所有的SUBSCRIBER。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
需要制定自己的一套协议,使得他能够在PRESENCE SERVICE,PRESENTITIES,和WATCHERS之间作为交互的语言。
PRENSENCE时一组PRESENCE TUPLES的集合,每个PRESENCE TUPLE代表了一个PRESENTITY的状态信息。其中包含了:
1. 状态(STATUS) 2. 通讯地址(COMMUNICATION ADDERSS),其中包括:联系方式(CONTACT MEANS),联系地址(CONTACT ADDRESS)。联系方式和联系地址都是可以扩展的。目前模型定义的就是消息,以后可以时邮件,视频,音频等等。3. 一些扩展信息。
(二)即时消息服务(INSTANT MESSAGE SERVICE)
即时消息的模型类似于邮箱,有发信的人(SENDER),邮局(INSTANT MESSAGE SERVICE),收件人信箱(INSTANT INBOX)。
同PRESENCE SERVICE一样,由于需要在各个实体之间进行通讯,我们也需要给INSTANT制定一套协议。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
到目前为止,这些都是服务器端的范畴。以MSN为例,可以来理解一下这些定义。
PRESENCE SERVICE:这就是MSN中状态变化的服务。用户登陆的时候,就预定了自己的好友列表中的好友的状态变化,一旦某一个PRESENCE(即用户)的状态发生变化,NOTIFICATION就会通知所有订阅该用户状态的用户。
而SENDER就是服务器方接受用户发送的即时消息,然后转发给响应的用户。
下面,我们将要把用户,以及用户接口纳入整个模型之中。和之前类似,还是分为PRESENCE SERVICE和INSTANT MESSAGE SERVICE。同时我们引入一个概念PRINCIPAL,他可以是人,另外一个程序等等任何可以使用这两种服务的实体。
转载于:https://www.cnblogs.com/bluecross/archive/2006/02/23/336457.html