20.IM通信

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 組件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章