Pushpin:開源即時(shí)通信神器,讓你的API秒變實(shí)時(shí)API,輕松實(shí)現(xiàn)WebSocket,HTTP流和HTTP長(zhǎng)輪詢等服務(wù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
作為一個(gè)開發(fā)者,你可能已經(jīng)利用過(guò)REST API來(lái)構(gòu)建和集成各種應(yīng)用。REST API是基于HTTP協(xié)議的交互模式,它使得客戶端和服務(wù)器可以通過(guò)請(qǐng)求和響應(yīng)來(lái)進(jìn)行數(shù)據(jù)交換,簡(jiǎn)單、靈活、通用。 然而,當(dāng)你開發(fā)實(shí)時(shí)應(yīng)用,如IM聊天、協(xié)作等應(yīng)用時(shí),意味著客戶端需要不斷向服務(wù)器請(qǐng)求才能獲取到最新數(shù)據(jù),這將浪費(fèi)大量網(wǎng)絡(luò)流量和資源,導(dǎo)致數(shù)據(jù)延遲。要么采用復(fù)雜的WebSocket協(xié)議,但無(wú)疑會(huì)增加開發(fā)的難度和成本。為此,我們是否能找一種更簡(jiǎn)便、低成本的解決方案呢?答案是肯定的,它就是Pushpin。 什么是Pushpin?Pushpin是用Rust和C++編寫的反向代理服務(wù)器。它可以讓你在不修改后端代碼的情況下,為你的REST API添加實(shí)時(shí)通信功能。它支持WebSocket、HTTP流和HTTP長(zhǎng)輪詢等多種實(shí)時(shí)協(xié)議,讓你的前端和后端之間實(shí)現(xiàn)雙向通信。 Pushpin不會(huì)緩存數(shù)據(jù),不會(huì)影響應(yīng)用程序的數(shù)據(jù)模型,也不會(huì)綁定您的 API 定義。它只是一個(gè)中間層,讓后端能夠根據(jù)自己的數(shù)據(jù)模型來(lái)處理客戶端的請(qǐng)求。客戶端也不必關(guān)心“頻道”或“消息”的概念,只要發(fā)送 HTTP 請(qǐng)求或 WebSocket 幀,后端就能根據(jù)這些輸入來(lái)推送實(shí)時(shí)數(shù)據(jù)。 Pushpin如何工作?![]() Pushpin它作為一個(gè)中間層,接收前端發(fā)來(lái)的請(qǐng)求,并轉(zhuǎn)發(fā)給后端。如果后端返回了一個(gè)普通的HTTP響應(yīng),Pushpin就直接返回給前端。如果后端返回了一個(gè)特殊的響應(yīng),比如帶有Grip頭部或者帶有訂閱信息,Pushpin就會(huì)保持連接,并等待后端通過(guò)控制API推送數(shù)據(jù)給前端。 這樣一來(lái),你就可以在后端使用任何語(yǔ)言和框架來(lái)開發(fā)REST API,而不需要關(guān)心實(shí)時(shí)協(xié)議的細(xì)節(jié),只要你按照Pushpin提供的規(guī)范來(lái)返回響應(yīng)和推送數(shù)據(jù),Pushpin就會(huì)自動(dòng)為你處理好前端和后端之間的實(shí)時(shí)通信。 Pushpin能做什么?Pushpin非常適合各種設(shè)置,因?yàn)樗洚?dāng)代理服務(wù)器和發(fā)布-訂閱代理。 1、代理 ![]() 2、 使用API管理 3、 使用消息隊(duì)列 ![]() 4、 微服務(wù) 在微服務(wù)環(huán)境中,Pushpin可以輕松偵聽來(lái)自其他微服務(wù)的即時(shí)更新,而無(wú)需集中式消息代理。每個(gè)微服務(wù)都有自己的Pushpin實(shí)例,微服務(wù)通過(guò)組織自己的API協(xié)定而不是特定于供應(yīng)商的機(jī)制相互通信。 ![]()
![]() 為了方便集成,提供有許多后端語(yǔ)言和框架的庫(kù): Pushpin在Apache許可證 2.0 版下獲得許可,它是一個(gè)讓你的REST API變成實(shí)時(shí)API的神器,它可以為你的應(yīng)用添加實(shí)時(shí)通信功能,無(wú)縫地與現(xiàn)有的REST API集成。它支持多種實(shí)時(shí)協(xié)議,可以和任何語(yǔ)言和框架配合使用,還提供了高效穩(wěn)定的服務(wù)。如果你想要開發(fā)一個(gè)實(shí)時(shí)的應(yīng)用,不妨試試Pushpin! 項(xiàng)目地址:https://pushpin.org/ 文檔地址:https://pushpin.org/docs/about/ 源碼地址:https://github.com/fastly/pushpin ![]() 文章出自猿惑豁微信公眾號(hào) 該文章在 2023/10/28 11:00:15 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |