訊息推送系統 (一)概念與原理

2021-07-23 03:19:47 字數 1059 閱讀 4533

這裡我們從系統結構的層面來看訊息推送系統(push server)的基本原理。

首先需要了解幾個基本的概念:

翻譯自http keep-alive connection和http persistent connection,又叫http connection reuse,網上也有反過來翻譯成http long connection。

下面這個圖來自wikipedia,講解了http長連線是在乙個tcp連線的基礎之上,傳送多個http請求以及接收多個http響應,這是為了避免每一次請求都去開啟乙個新的連線。在http 1.1標準中,所有的請求都認為是長連線。

在這裡的訊息推送系統中,http長連線的作用就是向伺服器傳送請求,然後一直等待伺服器的返回資料。這就相當於客戶端在「監聽」伺服器了,可以隨時接收來自伺服器的訊息。ok,lolita is ready to be pushed!

同步與非同步說的是客戶端與伺服器端之間的一種通訊方式。

阻塞:伺服器端的執行緒或者程序沒有處理完資料的時候,不會返回,執行緒或者程序回被掛起,不再響應其他請求。

非阻塞:伺服器端在沒有處理完的時候,會立即返回,不會掛起執行緒或者程序,可以繼續響應其他請求。

阻塞與非阻塞說的是伺服器端對請求的處理方式。

在訊息推送系統中,客戶端+伺服器端一起,使用的是非同步非阻塞。

好了,接下來是就是訊息推送系統(push server)的結構和原理了:

1. 客戶端發出乙個http長連線請求,然後等待伺服器的響應。這個請求是非同步的,所以客戶端可以繼續工作,比如發起其他ajax請求等等。這個時候客戶端就是乙個待推倒的小蘿莉了。

2. 伺服器接到請求之後,並不立即傳送出資料,而是hold住這個connecton。這個處理是非阻塞的,所以伺服器可以繼續處理其他請求。

3. 在某個時刻,比如伺服器有新資料了,伺服器再主動把這個訊息推送出去,即通過之前建立好的連線將資料推送給客戶端。

4. 客戶端收到返回。這個時候就可以處理資料,然後再次發起新的長連線。

基本原理就是這麼簡單。

但是在具體實現的時候,還有很多細節要處理,需要一些其他的技術。

作業系統(一)概述

學習資料 作業系統 清華大學出版社 2012 一 功能 1.管理系統的各個部件,使它們能夠正常運轉 2.給上層的應用軟體提供乙個易於理解和程式設計的介面 二 角色 對於作業系統的設計者,作業系統是系統資源的管理者 如何管理cpu 記憶體 i o裝置等系統部件 對於應用程式開發人員,作業系統是一組抽象...

作業系統(一) 概述

作業系統是緊貼硬體之上,所有其他軟體之下 是其它軟體的環境 用來管理硬體 使cpu i o裝置和儲存空間能夠有效利用,管理分配軟硬體資源,合理組織計算機工作流程 作業管理,程序管理 實現使用者介面 彌補硬體系統的型別和數量的差別 將覆蓋了軟體的機器稱為擴充機器或虛擬機器,因此,os是擴充套件機 虛擬...

嵌入式系統(一) 概論

嵌入式系統 embedded system 全稱嵌入式計算機系統,它實現了微型計算機晶元化,因此也稱微控制器 single chip microcomputer,scmp 微控制器 mcu 是主要面向測控領域的微控制器,使用很廣泛,整合了cpu 儲存器 定時器 計時器等功能部件,是以控制為目的的單片...