Springboot實現消息實時推送的七種方式,你都知道嗎?

什麼是消息推送(push)

消息推送一般又分為web端消息推送和移動端消息推送。

移動推送消息通常有兩種類型,一種是通知消息,一種是自定義消息、也叫做透傳消息。通知消息,就是直接展示在手機設備通知欄的消息,樣式相對而言比較固定;自定義消息,就是消息體和展現形式完全都可以自定義,可以處理成為應用內彈窗、應用內浮窗、IM即時通訊類消息等展現形式。

上邊的這種屬於移動端消息推送,web端消息推送常見的諸如站內信、未讀郵件數量、監控報警數量等,應用的也非常廣泛。

在具體實現之前,咱們再來分析一下前邊的需求,其實功能很簡單,隻要觸發某個事件(主動分享瞭資源或者後臺主動推送消息),web頁面的通知小紅點就會實時的+1就可以瞭。

通常在服務端會有若幹張消息推送表,用來記錄用戶觸發不同事件所推送不同類型的消息,前端主動查詢(拉)或者被動接收(推)用戶所有未讀的消息數。

消息推送無非是推(push)和拉(pull)兩種形式,下邊我們逐個瞭解下。

短輪詢

輪詢(polling)應該是實現消息推送方案中最簡單的一種,這裡我們暫且將輪詢分為短輪詢長輪詢

短輪詢很好理解,指定的時間間隔,由瀏覽器向服務器發出HTTP請求,服務器實時返回未讀消息數據給客戶端,瀏覽器再做渲染顯示。

一個簡單的JS定時器就可以搞定,每秒鐘請求一次未讀消息數接口,返回的數據展示即可。

setInterval(() => {
// 方法請求
messageCount().then((res) => {
if (res.code === 200) {
this.messageCount = res.data
}
})
}, 1000);

赞(0)