旗下导航:搜·么
当前位置:网站首页 > PHP框架 > Swoole > 正文

swoole怎样推断fd是不是衔接【swoole】,swoole

作者:搜搜PHP网发布时间:2019-12-17分类:Swoole浏览:70


导读:心跳是什么?望文生义,心跳是推断一个事物生照样死的一个规范,在swoole里,心跳是指用来推断一个衔接是平常照样断开的。从TCP协定提及(引荐进修:swoole...

心跳是什么?

望文生义,心跳是推断一个事物生照样死的一个规范,在swoole里,心跳是指用来推断一个衔接是平常照样断开的。

从TCP协定提及 (引荐进修: swoole视频教程)

我们都晓得一个五元组标识一个网络衔接,建立一个衔接有三次握手,而断开一个衔接有四次挥手。不管是服务器照样客户端提议衔接的封闭,都邑完全的走完四次挥手的历程,如许,统统很圆满,体系接纳这个fd,应用层也能够经由过程onClose回调处置惩罚相干的事变.

fd是什么?

fd学名是文件描述符,在unix的哲学就是统统皆文件中,这个fd就是体系层暴露给营业层的用来示意一个五元组网络衔接的标识。

你能够简朴的理解为一个索引,经由过程对这个fd的操纵,体系层能够找到响应的衔接而且举行的一系列操纵,如发送数据到网瞳,举行衔接封闭等等。

为何要心跳?

适才提到,假如我们要封闭某个衔接,我们能够在营业层对fd提议封闭衔接的操纵,以swoole为例:

$server->close($fd);

平常情况下,都邑走完全个四次挥手,(swoole会有onClose回调),体系接纳fd,以待分配给其他的衔接。

那体系为何要接纳fd,由于fd资本是有限的,所以必须反复应用。

但在某些情况下,如倏忽拔掉网线或蓝翔练习挖断光缆,服务端并不能感知到这个衔接的非常,但实际上是这个衔接已失效了,假如没有一个接纳机制,这类衔接将用光一切的fd,致使体系不再能接收新的衔接要求,所以就有了心跳机制。

什么是心跳机制?

心跳机制就是营业层来供应一个衔接是不是存活的一个要领,让体系能剖断一个衔接是不是失效。平常有两种完成体式格局:

1: 客户端定时发送一个心跳包,通知服务器我还在世,服务器定时检测一切客户端列表,看他们末了一个心跳包的时候是不是太长,假如太长,则以为已无心跳,剖断为死衔接,主动封闭这个衔接。

2: 服务器定时讯问一切的客户端,你们还在世么?假如在世,给我个回馈,没获得回馈的客户端,格杀勿论。

以上就是swoole怎样推断fd是不是衔接的细致内容,更多请关注ki4网别的相干文章!

标签:swoole