http協議特點 |
一次性的,非持久性的一個服務 |
Websocket協議的特點 |
持久化連接,是一種獨立的,基於tcp的協議 會有一個屬性upgrade在header頭 基於websocket,我們可以實現客戶端和服務端的雙向通信。 Websocket協議的持久化連接比之前ajax輪詢而建立的源源不斷的http連接,更加節省寬帶和服務器的資源
案例: 訂單 -> 異步消息隊列 -> 處理後的信息發送回給前臺(可以通過websocket) |
|
Client -> server 1.連接請求信息(既是建立連接,也是請求信息)
Server->client 2.響應結果,返回數據
Websocket的作用就是讓這部分數據可以持久化
Client->server 3.已接收,請關閉連接
Server->client 4.已關閉 |
websocket_server是在swoole_http_server基礎之上做了協議解析
|
|
使用原生socket實現websocket |
|
Swoole的websocket |
幾行代碼就可以完成 用戶連接標識,用來辨別客戶端的身份 可以把fd緩存在redis中 |
websocket集成到框架中 |
|
1.路由設計 |
對應路由:
對應的測試控制器: |
2.路由解析 |
|
3.websocket服務設置 |
|
4.websocket服務 |
|
問題 |
1.發送的心跳包應該儘可能小 2.心跳的時間 延長
Heartbeat_check_interval 每隔多久輪詢一次 Heartbeat_idle_time 最大允許的空閒時間
推薦使用 laravel_swoole 組件 |
20.IM通信
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.