CSDN博客

img ghj1976

RVP:存在和即时消息传送协议 (5)

发表于2000/12/9 2:36:00  1104人阅读

标头

支持下面的标头以用于 DAV/HTTP:DAV 和 Depth。新的 RVP 标头包括 RVP-Notifications-Version、Call-Back、Subscription-Id、Subscription-Lifetime 和 Notification-Type。

现有的 DAV/HTTP 标头

RVP 实现可以忽略所有 DAV 特定的标头,除非另有说明。

DAV 标头

因为此协议的当前版本只是部分符合 DAV,所以服务器从来不返回此标头,而且在请求中忽略它。

Depth 标头

在 PROPFIND 方法中仅支持深度值为零的此标头,在该方法中它是必需的。


Top


新的 RVP 标头

RVP-Notifications-Version

此标头提供通知协议的版本号。每个请求和响应都必须包括此标头。

Call-Back

此标头取自 GENA,在 SUBSCRIBE 方法中使用;它给出订阅通知的异步 NOTIFY 回调的 URL。

Subscription-Id

此标头取自 GENA,在 SUBSCRIBE 请求/响应以及 NOTIFY 和 UNSUBSCRIBE 请求中使用。它给出订阅的唯一标识符。

Subscription-Lifetime

此标头取自 GENA,在 SUBSCRIBE 方法中使用。如果租用了订阅,它表明被请求的(在请求中)订阅和实际的(在响应中)超时需要更多信息。

Notification-Type

此标头取自 GENA,在 SUBSCRIBE 方法中使用。它表明所需的通知类型(在 GENA 框架内)。

值可以是 update/propchange 或 pragma/notify,并且可以扩展为其它值。

RVP-Ack-Type

此标头确定 NOTIFY 消息的发件人何时对完成发送和要求确认满意。它可以具有 SingleHop、DeepOr 或 DeepAnd 值。

RVP-Hop-Count

此标头用来表明为生成此请求出现了多少次转发,包括 NOTIFY 消息的来源(最初设置为 1)。

RVP-From-Principal

此标头表明此方法的来源。它通常是发件人的逻辑 URL


Top

返回码

RVP 使用几种现有的 HTTP 返回码,以及来自 DAV 的几种返回码。下面是通常使用的返回码:

200 Successful

此代码表明已经成功执行了请求。

207 MultiStatus

作为对 PROPPATCH 或 PROPFIND 请求的响应,正常情况下将接收到此代码。此请求具有一个文本 /html HTTP 主体,该主体有一个称为 multistatus 的单一 XML 元素。multistatus 元素具有一组称为响应的 XML 元素,其中包含 200、300、400 和 500 系列的状态代码,这些代码是在调用方法期间生成的。

302 Object Moved

此代码表明所请求的节点不是由服务器维护的。响应包括该节点的新 URL。作为对向路由器发出的请求的响应,通常会接收到此类型的响应。

401 Access Denied

此代码表明某个节点已经拒绝了访问。当 PRESENCE SERVICE 试图访问受保护的节点时,它用此代码作为响应。响应标头包含可用授权方案的详细信息。

412 Precondition Failed

此代码表明无法将请求应用于所请求的节点。其用法的一个示例是,当一个实体试图将 INSTANT MESSAGE 发送给一个不再可用的 PRINCIPAL 时。

500 Internal Server Error

此代码表明会话中缺少 PRINCIPAL。例如,当一个 PRINCIPAL 离开与多个 PRINCIPALS 的讨论,且它的 INSTANT INBOX 接收到会话通知时,将使用此返回码。然后,INSTANT MESSAGE 的发件人就能够指明该 PRINCIPAL 已经离开了对话。


Top


XML 文档类型定义

以下是在 DAV 中使用的元素:

set

prop

timeout

displayname

subscription

subscription-id

href

subscriptions

multistatus

response

propstat

propertyupdate

RVP 元素

下表说明由 RVP 提供的元素。

元素 定义 父级 作用
State DAV: 表明节点的当前状态信息
Leased-value 表明“当前租用值”状态
Default-value 表明节点的当前缺省状态(当前为 " " , , 或 之一)
Value 表明节点的当前状态(当前为 " " 之一)
Online | 表明“在线”状态
Offline | 表明“离线”状态
Away | 表明“离开”状态
Busy | 表明“忙”状态
Back-soon | 表明“很快返回”状态
On-phone | 表明“有电话”状态
At-lunch | 表明“吃午饭”状态
View-id 为对节点的更新提供唯一的标识符
Principal 包含有关 PRINCIPAL 的详细信息
Rvp-principal 详细说明 PRINCIPAL 的逻辑 URL
Email DAV: 包含有关 PRINCIPAL 的电子邮件地址的详细信息
Mobile-state DAV: 确定 PRINCIPAL 的移动(即手机)状态是在线
Mobile-description DAV: 说明 PRINCIPAL 的移动(即手机)号码
Notification None 表明发生了一个即时消息或对 PRINCIPAL 状态的更新
Propnotification 表明 PRINCIPAL 的状态发生了变化
Message 表明发送或接收了一个即时信息
Notification-from | 表明通知或消息的来源
Notification-to | 表明通知或消息要发送给何人
Msgbody 包含需要发送的用 MIME 编码的消息
Contact | 详细说明如何与 PRINCIPAL 联系
Description 说明联系人的情况
Mime-data 包含要发送或接收的实际 INSTANT MESSAGE


Top


MIME 有效负载

在通知的 mime 数据内可以传递三种类型的有效负载。以下各节包含这些有效负载中每一种的详细信息。

即时消息

此有效负载是最常见的类型。它通常用来在两个 PRINCIPALS 之间发送一些文本。mime 数据如下所示:

           
           

键入消息

此有效负载用来表明 PRINCIPAL 正在键入。在 Exchange 2000 Server 中,这些通知每隔 4 秒发送一次。

           
           

应用程序邀请

在出现启动应用程序的请求时,使用此有效负载。

           

Top


参考资料

以下这些文章可以在 Internet 工程工作组(英文)的 Web 站点上找到:

"A Model for Presence and Instant Messaging," Day, M., J. Rosenberg, and H. Sugano, RFC 2778 [MODEL]。

HTTP Extensions for Distributed Authoring, Goland Y., E. Whitehead, A. Faizi, S. Carter and D. Jensen, RFC 2518 [WEBDAV]。

Hypertext Transfer Protocol HTTP/1.1, Fielding, R. J. Gettys, J. Mogul, H. Frystyk, and T. Berners-Lee, RFC 2068 [HTTP]。

"Instant Messaging/Presence Protocol Requirements," Day, M., S. Aggarwal, G. Mohr, and J. Vincent RFC 2779, [IMPP-REQTS]。

回到顶部
0 0

相关博文

我的热门文章

img
取 消
img