最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

swoole怎么判斷fd是否連接

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-03 18:22:49
文檔

swoole怎么判斷fd是否連接

swoole怎么判斷fd是否連接:心跳是什么?顧名思義,心跳是判斷一個事物生還是死的一個標(biāo)準(zhǔn),在swoole里,心跳是指用來判斷一個連接是正常還是斷開的。從TCP協(xié)議說起 (推薦學(xué)習(xí): swoole視頻教程)我們都知道一個五元組標(biāo)識一個網(wǎng)絡(luò)連接,創(chuàng)建一個連接有三次握手,而斷開一個連接有四次
推薦度:
導(dǎo)讀swoole怎么判斷fd是否連接:心跳是什么?顧名思義,心跳是判斷一個事物生還是死的一個標(biāo)準(zhǔn),在swoole里,心跳是指用來判斷一個連接是正常還是斷開的。從TCP協(xié)議說起 (推薦學(xué)習(xí): swoole視頻教程)我們都知道一個五元組標(biāo)識一個網(wǎng)絡(luò)連接,創(chuàng)建一個連接有三次握手,而斷開一個連接有四次

心跳是什么?

顧名思義,心跳是判斷一個事物生還是死的一個標(biāo)準(zhǔn),在swoole里,心跳是指用來判斷一個連接是正常還是斷開的。

從TCP協(xié)議說起 (推薦學(xué)習(xí): swoole視頻教程)

我們都知道一個五元組標(biāo)識一個網(wǎng)絡(luò)連接,創(chuàng)建一個連接有三次握手,而斷開一個連接有四次揮手。不管是服務(wù)器還是客戶端發(fā)起連接的關(guān)閉,都會完整的走完四次揮手的過程,這樣,一切很完美,系統(tǒng)回收這個fd,應(yīng)用層也可以通過onClose回調(diào)處理相關(guān)的事情.

fd是什么?

fd學(xué)名是文件描述符,在unix的哲學(xué)就是一切皆文件中,這個fd就是系統(tǒng)層暴露給業(yè)務(wù)層的用來表示一個五元組網(wǎng)絡(luò)連接的標(biāo)識。

你可以簡單的理解為一個索引,通過對這個fd的操作,系統(tǒng)層可以找到相應(yīng)的連接而且進行的一系列操作,如發(fā)送數(shù)據(jù)到網(wǎng)瞳,進行連接關(guān)閉等等。

為什么要心跳?

剛才提到,如果我們要關(guān)閉某個連接,我們可以在業(yè)務(wù)層對fd發(fā)起關(guān)閉連接的操作,以swoole為例:

$server->close($fd);

正常情況下,都會走完整個四次揮手,(swoole會有onClose回調(diào)),系統(tǒng)回收fd,以待分配給其他的連接。

那系統(tǒng)為什么要回收fd,因為fd資源是有限的,所以必需重復(fù)利用。

但在某些情況下,如突然拔掉網(wǎng)線或藍翔演習(xí)挖斷光纜,服務(wù)端并不能感知到這個連接的異常,但實際上是這個連接已經(jīng)失效了,如果沒有一個回收機制,這類連接將用光所有的fd,導(dǎo)致系統(tǒng)不再能接受新的連接請求,所以就有了心跳機制。

什么是心跳機制?

心跳機制就是業(yè)務(wù)層來提供一個連接是否存活的一個方法,讓系統(tǒng)能判定一個連接是否失效。一般有兩種實現(xiàn)方式:

1: 客戶端定時發(fā)送一個心跳包,告訴服務(wù)器我還活著,服務(wù)器定時檢測所有客戶端列表,看他們最后一個心跳包的時間是否過長,如果過長,則認(rèn)為已無心跳,判定為死連接,主動關(guān)閉這個連接。

2: 服務(wù)器定時詢問所有的客戶端,你們還活著么?如果活著,給我個回饋,沒得到回饋的客戶端,格殺勿論。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

swoole怎么判斷fd是否連接

swoole怎么判斷fd是否連接:心跳是什么?顧名思義,心跳是判斷一個事物生還是死的一個標(biāo)準(zhǔn),在swoole里,心跳是指用來判斷一個連接是正常還是斷開的。從TCP協(xié)議說起 (推薦學(xué)習(xí): swoole視頻教程)我們都知道一個五元組標(biāo)識一個網(wǎng)絡(luò)連接,創(chuàng)建一個連接有三次握手,而斷開一個連接有四次
推薦度:
標(biāo)簽: 連接 知道 如何
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top