RVP:存在和即時訊息傳送協議 (2) (轉)

a400發表於2007-08-12
RVP:存在和即時訊息傳送協議 (2) (轉)[@more@]

響應

作為對 pragma/notify 的 Notification-Type 的成功 SUBSCRIBE 請求的響應,PRESENCE SERVICE 返回一個響應程式碼:200 - Succesul(成功)。響應標頭包含有關成功訂閱的詳細資訊,其中包括 Subscription-Id 標頭和 Subscription-Lifetime 標頭,這些標頭可能與所請求的不同。

作為對 update/propchange 的 Notification-Type 的成功 SUBSCRIBE 請求的響應,PRESENCE SERVICE 返回一個響應程式碼:207 - Multi Status(多重狀態)。響應標頭包含有關成功訂閱的詳細資訊,如上所述。還可能有一個包含所請求的屬性當前值的 主體。

在重新整理一個租用時,來自 PRESENCE SERVICE 的成功響應會返回一個響應程式碼:200 - Successful。同樣地,響應標頭包含有關成功訂閱的詳細資訊,其中包括 Subscription-Id 標頭和 Subscription-Lifetime 標頭,這些標頭可能與所請求的不同。

示例

以下示例說明如何建立一個登入訂閱和一個屬性訂閱。

登入訂閱

當一個 PRESENTITY 登入時,它可以建立一個“本地節點”和一個關聯 URL。例如,假定 PRINCIPAL 在機器 198.176.154.132 上執行一個 PRESENTITY。當 PRESENTITY 登入時,它會建立一個本地節點 。假定 PRINCIPAL 由 im.acme.託管,PRESENTITY 建立對節點 的登入訂閱,將本地節點指定為回撥。以下示例說明如何建立這樣的登入訂閱。

>> 請求 SUBSCRIBE /instmsg/aliases/maxb HTTP/1.1 Subscription-Lifetime: 14400 Notification-Type: pragma/notify Call-Back: RVP-Notifications-Version: 0.2 Host: imhome1.acme.com Content-Length: 0 RVP-From-Principal: >> 響應 HTTP/1.1 200 Successful Subscription-Id: 98210 Subscription-Lifetime: 14400 RVP-Notifications-Version: 0.2


屬性訂閱

上例中的 PRINCIPAL 對節點 的屬性進行了永久性登入訂閱。Call-Back 標頭是訂閱者 maxb 的邏輯 URL,允許更多保護。然而,這並不意味著 maxb 需要向 im.acme.com 上他的邏輯節點發出 SUBSCRIBE 請求,以轉發屬性。以下示例說明如何建立這樣的屬性訂閱。

>> 請求 SUBSCRIBE HTTP/1.1 Subscription-Lifetime: 14400 Notification-Type: update/propchange Call-Back: RVP-Notifications-Version: 0.2 Host: im.example.com Content-Length: 0 RVP-From-Principal: >> 響應 HTTP/1.1 207 Multi-Status Subscription-Id: 79 Subscription-Lifetime: 14400 Content-Type: text/xml Content-Length: XXXX RVP-Notifications-Version: 0.2 Derik deriks@example.com 0 HTTP/1.1.200.Successful


UNSUBSCRIBE

UNSUBSCRIBE 方法,取自 GENA,用來刪除使用 SUBSCRIBE 請求建立的訂閱。Subscription-Id 標頭用來唯一地指定應該取消的訂閱。誰可以撤消訂閱是由 PRESENCE SERVICE 決定的。

示例

以下示例說明 WATCHER 如何發出一個 UNSUBSCRIBE 請求,以阻止接收來自 im.stockquotes.com 的某一股票的進一步更新。

>> 請求 UNSUBSCRIBE /stock/companyA HTTP/1.1 Host: im.stockquotes.com RVP-Notifications-Version: 0.2 RVP-From-Principal: Subscription-Id: 1234 Content-Length: 0 >> 響應 HTTP/1.1 200 Successful RVP-Notifications-Version: 0.2


SUBSCRIPTIONS

新的 RVP SUBSCRIPTIONS 方法提取伺服器節點上的活動訂閱列表。可能的用途包括:檢視分發列表成員資格的 WATCHER,或檢視監視其線上狀態的 WATCHERS 列表的 RVP PRESENTITIES。

請求包含請求者感興趣的訂閱的 Notification-Type(update/propchange 或 pragma/notify)。這就是在建立每個訂閱的對應 SUBSCRIBE 中傳送的 Notification-Type。

答覆包含 XML 主體中的一個訂閱列表。每個 SUBSCRIPTIONS 請求都包含該訂閱的 Subscription-Id 標頭、訂閱者的 URL (如果有的話)以及該訂閱剩餘的時間(以秒計)。

SUBSCRIPTIONS 請求使用以下新的 RVP XML 元素:subscriptions, subscription、subscription-id、timeout 和 rvp-principal。

示例

以下示例說明如何檢索訂閱列表以及每個訂閱的剩餘時間。

>>請求 SUBSCRIPTIONS /lists/sales-event HTTP/1.1 Host: im.example.com RVP-Notifications-Version: 0.2 Notification-Type: update/propchange RVP-From-Principal: >>響應 HTTP/1.1 200 Successful RVP-Notifications-Version: 0.2 Content-Type: text/xml Content-Length: XXXX 456 s/maxb 4789 6656 8752


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-951234/,如需轉載,請註明出處,否則將追究法律責任。

相關文章