swoole怎麼保持不掉線

2022-08-27 17:06:09 字數 566 閱讀 1349

正常情況下客戶端中斷tcp連線時,會傳送乙個fin包,進行4次斷開握手來通知伺服器。但一些異常情況下,如客戶端突然斷電斷網或者網路異常,伺服器可能無法得知客戶端已斷開連線。

尤其是流動網路,tcp連線非常不穩定,所以需要一套機制來保證伺服器和客戶端之間連線的有效性。

swoole擴充套件本身內建了這種機制,開發者只需要配置乙個引數即可啟用。swoole在每次收到客戶端資料會記錄乙個時間戳,當客戶端在一定時間內未向伺服器端傳送資料,那伺服器會自動切斷連線。

使用方法:

上面的設定就是每5秒偵測一次心跳,乙個tcp連線如果在10秒內未向伺服器端傳送資料,將會被切斷。

高階用法:

使用swoole_server::heartbeat()函式手工檢測心跳是否到期。此函式會返回閒置時間超過heartbeat_idle_time的所有tcp連線。程式中可以將這些連線做一些操作,如傳送資料或關閉連線。

點此加入該群

shutdownNow關不掉執行緒

override public void run catch interruptedexception e override public void run catch interruptedexception e 上下兩個run方法比較,while thread.interrupted 判斷應該放...

swoole擴充套件怎麼用

swoole 是 php 的乙個擴充套件,可以通過 php 擴充套件的方式進行安裝和啟用。本地安裝 laradock 在本地安裝的話,以 laradock 為例,需要在 laradock 目錄下的 env 中將下面兩行配置值設定為 true 然後執行 docker compose build php...

網路老掉線怎麼回事

上網的時候最鬱悶的事情不是上不去網,而且能上的去,但是老是掉線。相信不少的朋友在平時上網的時候都會遇到這種情況,那麼為什麼網路會老是掉線呢,我們遇到這種情況應該怎麼解決呢?1 病毒和木馬是電腦永遠的敵人,電腦出現任何故障都有可能是它造成的,當然病毒和木馬造成網路老是掉線的情況並不是十分常見,當然也不...