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

原创 2000年12月09日 02:36:00
标头

支持下面的标头以用于 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 数据如下所示:

           
          MIME-Version: 1.0 
          Content-Type: text/plain; charset=UTF-8 
          X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; 
          PF=22 
          Session-Id: {79FC61B5-1234-1234-8A10-941F33CA4C90} 
           
          Lets have lunch 
           

键入消息

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

           
          MIME-Version 1.0 
          Content-Type: text/x-msmsscontrol 
          TypingUser: maxb@example.com 
          Session-Id: {79FC6B5-1234-1234-8A0-941F33CA4C90} 
           
           
           

应用程序邀请

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

           
          MIME-Version: 1.0 
          Content-Type: text/x-msmsgsinvite;.charset=UTF-8 
          Session-Id: {79FC61B5-1234-1234-8A10-941F33CA4C90} 
           
          Application-Name: NetMeeting.3.01 
          Application-GUID: {44BBA842-CC51-11CF-AAFA-00AA00B6015C} 
          Invitation-Command: INVITE 
          Invitation-Cookie: 3 
           
           
           

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]。

回到顶部

Android中即时通讯协议选择

Android中的即时通讯,就是客户端要与服务器建立长时间的连接,正常情况下Android中请求服务器数据后,连接一般断开。但即时通讯类的对消息的实时性要求比较高。需要客户端与服务器建立长时间的连接,...
  • androidxiaogang
  • androidxiaogang
  • 2016年05月08日 18:57
  • 5442

即时通信和实时通信的区别

即时通信(im)和实时通信(声网Agora.io)都是一套网络通信系统,其本质都是对信息进行转发。其最大的不同点,是对信息传递的时间规定。二者的区别可以从以下几个方面: 一、场景 常见的即时通信场...
  • agora_cloud
  • agora_cloud
  • 2016年06月22日 11:18
  • 4132

聊聊四种即时通信(Instant Messaging)IM协议

四种即时通信(Instant Messaging)IM协议 即时消息和表示协议IMPP 表示和即时消息协议PRIM SIP即时消息和表示扩展协议SIMPLE 可扩展消息与表示协议XMPP...
  • feng2qing
  • feng2qing
  • 2017年02月27日 21:40
  • 1321

使用OTR进行加密聊天(适用于Gtalk、Facebook聊天室)

原理介绍 OTR全名叫作Off-the-Record,是一种加密聊天的技术,使用的是非对称的加密技术。 OTR可以外挂在使用XMPP通讯协议(Extensible Messaging and...
  • rongge2008
  • rongge2008
  • 2014年05月26日 18:29
  • 1044

BlueTooth蓝牙协议规范(五)

一、IrDA互操作协议 IrOBEX 红外对象交互协议,简称OBEX,使高层协议同时运作在蓝牙和红外的无线链路之上。 主要操作指令有:连接操作、断开操作、Put操作、Get操作。 ...
  • mutoujian126
  • mutoujian126
  • 2014年09月02日 09:21
  • 1156

即时通信XMPP协议实现原理介绍

一、 开发背景 1、 国际背景 随着 Internet 技术的高速发展,即时通信已经成为一种广泛使用的通信方 式。1996 年 Mirabilis 公司推出了世界上第一个即时通信系统 ICQ,不...
  • huohu1007
  • huohu1007
  • 2016年01月14日 14:29
  • 4532

XMPP即时通讯协议

XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messagin...
  • ideal_Utopia
  • ideal_Utopia
  • 2016年09月29日 16:19
  • 2075

Java干货之Socket自定义传输协议,可用于一般即时通讯

原型客户端 Clientpackage me.mxzf;import java.io.BufferedInputStream; import java.io.BufferedOutputStream;...
  • qq_27070443
  • qq_27070443
  • 2017年03月15日 15:11
  • 754

SOCKS 5协议详解

SOCKS 5协议详解
  • ztguang
  • ztguang
  • 2017年03月01日 20:36
  • 556

web开发之即时通讯数据库设计

很多web应用带有站内信的功能,或者类似于新浪微博一样的聊天功能,这篇文章针对即时通讯的数据库设计发表一下自己的看法。 首先说一下需求:设计一个IM系统,实现私信聊天,群聊功能,并可以发送图片或者...
  • Jahnng
  • Jahnng
  • 2015年03月07日 00:05
  • 3747
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RVP:存在和即时消息传送协议 (5)
举报原因:
原因补充:

(最多只允许输入30个字)