RVP:存在和即時訊息傳送協議 (2) (轉)
響應
作為對 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
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-951234/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RVP:存在和即時訊息傳送協議 (3) (轉)協議
- 用程式碼理解 ObjC 中的傳送訊息和訊息轉發OBJ
- 用程式碼理解ObjC中的傳送訊息和訊息轉發OBJ
- 訊息佇列面試解析 - 傳輸協議佇列面試協議
- 訊息中介軟體—RocketMQ訊息傳送MQ
- iOS 訊息傳送與轉發詳解iOS
- 【RocketMQ】MQ訊息傳送MQ
- RocketMQ(八):訊息傳送MQ
- iOS 傳送位置訊息iOS
- 鴻蒙傳送訊息通知鴻蒙
- Spring Boot 整合 RabbitMQ 傳送延時訊息Spring BootMQ
- HTTP協議訊息頭HTTP協議
- RocketMQ(九):訊息傳送(續)MQ
- TNW-傳送模板訊息TNW
- 6-RocketMQ傳送訊息MQ
- 【譯】 WebSocket 協議第六章——傳送與接收訊息(Sending and Receiving Data)Web協議
- 圖解RocketMQ訊息傳送和儲存流程圖解MQ
- php ActiveMQ的傳送訊息,與處理訊息PHPMQ
- 即時訊息 - 時信魔方教程
- ActiveMQ支援的訊息協議MQ協議
- 深入 RPC 訊息協議RPC協議
- 即時通訊傳送檔案的方法有幾種?
- RocketMQ中Producer訊息的傳送MQ
- 傳送不同型別的訊息型別
- RocketMQ -- 訊息傳送儲存流程MQ
- Kafka -- 訊息傳送儲存流程Kafka
- 快速向 Google Chat 傳送訊息Go
- iOS 給父類傳送訊息iOS
- 小程式傳送訂閱訊息
- SpringBoot整合rabbitMq實現訊息延時傳送Spring BootMQ
- 可執行資訊和傳送訊息的服務?
- Linux 指令篇:訊息傳送與信件管理--newaliases(轉)Linux
- MQTT協議 -- 訊息報文格式MQQT協議
- vbs指令碼和windows定時任務實現qq訊息表情包定時傳送指令碼Windows
- asp.net 即時訊息提示ASP.NET
- 兩種介面傳送資料協議(xml和json)協議XMLJSON
- Runtime備忘-訊息傳送流程
- 分散式事務:訊息可靠傳送分散式