跳到主要內容

發表文章

目前顯示的是有「webhook」標籤的文章

如何讓Client得知你系統的事件?

Introduction 不管是任何系統都會有自己特有事件,而使用者會對某些事件有興趣。對於不同的案例,會有不同的解法。這裡主要收集Study的結果。 Categories WebHook - Pub/Sub 在這種方法中,Client扮演著subscriber;Server則為publisher。Client會透過Server提供的介面去註冊某個有興趣的訊息,而Server當發生了事件後,會把訊息送給對應的subscriber。參考Jenkins Notification Plugin的UI設計: (圖片來自: link ) 以Jenkins的Plugin來說,User可以透過它的UI設定你的Client所接受的Format、Protocol(http、https、udp、tcp),有興趣的Event,還有要callback的URL。如果你的Server提供的介面是RestAPI,可以參考Google Drive的做法。最重要的就在於User願意接受你所提出的格式。 使用這方法的應用有: Google Drive 、 AZure 、 Jenkins Plugin 。 WebHook – PubSubHubBub PubSubHubBub是一個Publish/Subscribe的開放標準,詳細介紹看 這裡 。我們直接說說操作過程(圖片來自 link ): Discovery: subscriber會先從publisher的topic_url取得hub_url,publisher回應格式是基於RSS或ATOM XML。 Subscribe: subscriber會到hub_url註冊有興趣的topic_url與要收通知的callback_url,callback_url通常被稱為webhook。 Publish: 當Publisher有事件發生會通知Hub,而Hub會去取得最新的事件。 Notify: Hub通知所有subscriber新增與改變的事件。 與一般的Pub/Sub最大差別,我想: PubSubHubBub通常會是一個外部服務,不太容易適用於內部網路;Pub/Sub比較容易用於內部網路。 由於publisher只要通知Hub,即使有多個subscriber,也不會有巨大流量產生在publisher上;Pub/Sub是由publisher自己通知所有的sub...