pubnub webhook

Webhook Overview

WebHook 是一個 HTTP 回撥:發生某些事情時發生的 HTTP POST; 通過 HTTP POST 進行簡單的事件通知。實現 WebHooks 的 Web 應用程式會在發生某些事情時將訊息釋出到 URL。

PubNub Presence

Pubnub 存在所有關於 pubnub 平臺上的使用者存在。它在使用者加入,離開頻道或使用者狀態發生變化時提供使用者。Presence Webhooks 為你的伺服器提供了一種方法,可以在你的金鑰的任何通道上發生狀態事件時收到通知。這為你的伺服器端應用程式提供了一個易於擴充套件的解決方案,以監控狀態事件。

How it would reduce the overhead

如果沒有 Presence Webhooks,你的伺服器必須訂閱所有頻道的 -pnpres 頻道。因此,如果你的應用擁有數千個頻道或更多頻道,那麼控制過度頻道可能是一項繁瑣的工作。

Pubnub Webhooks 將在這種情況下幫助我們,並且使用傳統的,眾所周知的 Web 基礎架構(由 Heroku,Rackspace,Azure,Amazon 等應用程式服務提供商提供的負載平衡器,Web 和應用程式伺服器)更容易實現和擴充套件。

PubNub Presence Webhooks

PubNub Presence Webhooks 是 PubNub 網路在發生狀態事件時直接呼叫伺服器的 REST 端點的一種方法。它還有助於負載平衡。因此,你需要在伺服器上建立 REST 端點 URL,pubnub 將在該 URL 上傳送狀態資料。

User Presence Events

pubnunb 平臺有四個使用者事件

  1. 加入
  2. 離開
  3. 超時
  4. 狀態變化

還有兩個通道級事件:活動和非活動。有關詳細資訊,請參閱 pubnub-doc。

每個事件都有自己的 Webhook,你可以為伺服器提供 REST 端點來處理事件。或者,你可以為所有這些端點提供一個 REST 端點,只需在伺服器上的 action 屬性上實現條件邏輯即可處理每個單獨的事件。

無論你選擇什麼,你都需要向 PubNub 支援提供子金鑰和 REST URI 以便為你配置。對於不同的伺服器環境(例如,開發,測試,生產),你可能會有多個具有不同端點的子金鑰。

一旦實現了伺服器的 REST 端點並且 PubNub 金鑰配置到位,你就可以開始了。但在實現 REST 端點之前,瞭解事件的資料可能會有所幫助。

以下是聯接的示例:

HTTP POST
Content-Type: application/json

{
    'action': 'join',
    'sub_key': 'sub-c-...',
    'channel': 'lacrosse'
    'uuid': '1234-5678-90ab-cdef',
    'timestamp': 1440568311,
    'occupancy': 1,
    'data': {'foo': 'bar'}
} 

當然,除了動作值之外,離開和超時以及狀態改變都是一樣的。

Webhook Response Status

在從 PubNub 接收 Webhook 後,你的 REST 端點實現應立即返回狀態程式碼(200 OK),這一點非常重要。

Pubnub Re-try 

如果 pubnub 沒有從 Rest-Endpoint 收到 200,那麼它將傳送重複事件,因為 PubNub 假定沒有響應意味著你的伺服器沒有收到該事件。在再次嘗試之前,PubNub 將等待五秒鐘以獲得 200 響應。在第三次重試(總共四次嘗試)之後,PubNub 將不再嘗試將該特定事件傳送到你的伺服器。