什么是 Webhook?AMS9.1將支持Webhook
- 2022-03-02 10:55:00
- admin 原創(chuàng)
- 9060
1. 什么是 Webhook?
Webhook 是一個(gè) API 概念,是微服務(wù) API 的使用范式之一,也被成為反向 API,即前端不主動(dòng)發(fā)送請(qǐng)求,完全由后端推送;舉個(gè)常用例子,比如你的好友發(fā)了一條朋友圈,后端將這條消息推送給所有其他好友的客戶端,就是 Webhook 的典型場(chǎng)景。
簡(jiǎn)單來(lái)說(shuō),Webhook 就是一個(gè)接收 HTTP POST(或GET,PUT,DELETE)的URL,一個(gè)實(shí)現(xiàn)了 Webhook 的 API 提供商就是在當(dāng)事件發(fā)生的時(shí)候會(huì)向這個(gè)配置好的 URL 發(fā)送一條信息,與請(qǐng)求-響應(yīng)式不同,使用 Webhook 你可以實(shí)時(shí)接受到變化。
這又是一種對(duì)客戶機(jī)-服務(wù)器模式的逆轉(zhuǎn),在傳統(tǒng)方法中,客戶端從服務(wù)器請(qǐng)求數(shù)據(jù),然后服務(wù)器提供給客戶端數(shù)據(jù)(客戶端是在拉數(shù)據(jù)),在 Webhook 范式下,服務(wù)器更新所需提供的資源,然后自動(dòng)將其作為更新發(fā)送到客戶端(服務(wù)器是在推數(shù)據(jù)),客戶端不是請(qǐng)求者,而是被動(dòng)接收方;這種控制關(guān)系的反轉(zhuǎn)可以用來(lái)促進(jìn)許多原本需要在遠(yuǎn)程服務(wù)器上進(jìn)行更復(fù)雜的請(qǐng)求和不斷的輪詢的通信請(qǐng)求;通過(guò)簡(jiǎn)單地接收資源而不是直接發(fā)送請(qǐng)求,我們可以更新遠(yuǎn)程代碼庫(kù),輕松地分配資源,甚至將其集成到現(xiàn)有系統(tǒng)中來(lái)根據(jù) API 的需要來(lái)更新端點(diǎn)和相關(guān)數(shù)據(jù),唯一的缺點(diǎn)是初始建立困難。
2. 主要用途
更新客戶端,在資源新建或者更新時(shí)提供更新的、指定的數(shù)據(jù)。
3. 常見(jiàn) Webhook 使用場(chǎng)景
對(duì)于第三方平臺(tái)驗(yàn)權(quán)、登陸等 沒(méi)有前端界面做中轉(zhuǎn)的場(chǎng)景,或者強(qiáng)安全要求的支付場(chǎng)景等,適合用 Webhook 做數(shù)據(jù)主動(dòng)推送,說(shuō)白了就是在前端無(wú)從參與,或者因?yàn)榍岸税踩珕?wèn)題不適合參與時(shí),就是 Webhook 的場(chǎng)景;很顯然 Webhook 也不是 Http 的替代品,不過(guò)的確是一種新的前后端交互方式。
如果客戶端要長(zhǎng)期監(jiān)聽(tīng)某個(gè)任務(wù)的狀態(tài),按照正常的 API 調(diào)用的方式去做,那么必須不停得輪訓(xùn)服務(wù)器來(lái)獲取當(dāng)前狀態(tài);使用 Webhook 則無(wú)需輪訓(xùn),通過(guò) API 可以確定是否發(fā)生了更改,如果更改了只需要等待服務(wù)器推送信息過(guò)來(lái),然后客戶端更新就可以;git webhook其實(shí)也是這方面的應(yīng)用。
4. 使用說(shuō)明
Webhook 通過(guò)請(qǐng)求發(fā)送數(shù)據(jù)到你的應(yīng)用后,就不再關(guān)注這些數(shù)據(jù);也就是說(shuō)如果你的應(yīng)用存在問(wèn)題,數(shù)據(jù)會(huì)丟失,許多 Webhook 會(huì)處理回應(yīng),如果程序出現(xiàn)錯(cuò)誤會(huì)重傳數(shù)據(jù);如果你的應(yīng)用處理這個(gè)請(qǐng)求并且依然返回一個(gè)錯(cuò)誤,你的應(yīng)用就會(huì)收到重復(fù)數(shù)據(jù)。
Webhook 可能會(huì)發(fā)出大量的請(qǐng)求,這樣會(huì)造成你的應(yīng)用阻塞,確保你的應(yīng)用能處理這些請(qǐng)求。
5.AMS中如何使用Webhook
AMS流媒體服務(wù)器與第三方平臺(tái)對(duì)接應(yīng)用時(shí),第三方平臺(tái)可以通過(guò)調(diào)用AMS提供的RestAPI接口實(shí)現(xiàn)創(chuàng)建頻道,設(shè)置信息,查詢信息。但是對(duì)于AMS內(nèi)部發(fā)生的事件,比如錄像節(jié)目生成,錄像分段后通知,硬盤空間不足等需要通知。頻道流中斷/恢復(fù) 通知等,這些可以采用WebHook方式通知到第三方平臺(tái),無(wú)需輪訓(xùn)查詢。降低了系統(tǒng)負(fù)載
聯(lián)系人: | 北極星通公司 |
---|---|
電話: | 010-56545416 |
傳真: | 010-82896426 |
Email: | support@bjsin.cn |
QQ: | 35338585 |
微信: | Aoku2017 | QQ群:241759321 |
地址: | 北京市中關(guān)村生命科學(xué)園創(chuàng)意園3-3-103 |