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 平臺有四個使用者事件
- 加入
- 離開
- 超時
- 狀態變化
還有兩個通道級事件:活動和非活動。有關詳細資訊,請參閱 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 將不再嘗試將該特定事件傳送到你的伺服器。