Request是當用戶在瀏覽器中輸入網址、提交表單等操作,客戶端向服務器端發送的請求。Response則是請求後返回給客戶端的響應。
早期網頁實現動態更新透過輪詢+ajax(Asynchronous JavaScript and XML),計時器不斷向伺服器請求、響應,方法簡單粗暴,但耗費頻寬,每次request、response都夾帶header、cookie的交換。
Pub-Sub是一個消息傳遞模式,在發送者和接收者之間傳遞消息。在Pub-Sub中,發送者將消息發送到主題(也稱為通道),而所有已訂閱此主題的接收者都將收到消息。這種模式用於解耦系統中的組件,從而使系統更具可擴展性和靈活性。此外,由於Pub-Sub可以支持多對多的消息傳遞,因此它通常用於需要廣播消息的應用程序,如聊天應用程序或即時更新應用程序。
在Laravel中,透過websockets來實現廣播訂閱模式,當客戶端與伺服器建立起長連結後,一旦事件被觸發,例如新上品上架後,就會觸發事件,廣播到所有訂閱的客戶端。
在laravel中伺服器的推播
安裝套件
註冊Provider
migrate
config/websockets.php設定檔
在 Laravel 應用程式中,廣播允許服務器主動推送事件給客戶端,以實現即時的數據同步和互動。為了使用 Laravel 的廣播功能,我們需要設定廣播路由,使客戶端能夠與服務器建立連接和接收廣播事件。
ServiceProvider
的 boot
方法設定了 Laravel 的廣播路由,通過調用 Broadcast::routes()
方法,並且導入了頻道路由清單routes/channels.php
。這個頻道路由清單列出了應用程式支持的所有頻道,以及與之相關聯的授權回呼函數。
客戶端對伺服器端發起授權請求進入channels.php
,回呼函式得到正確結果,回傳資料,雙方建立websocket連線
Laravel 會自動廣播,有實作ShouldBroadcast
介面的事件
安裝依賴包
resources/js/bootstrap.js
中添加
編譯前端資源