Qu'est-ce qu'un battement de coeur ?
Comme son nom l'indique, le battement de coeur est un critère pour juger si une chose est vivante ou morte. En swoole, le battement de coeur est utilisé pour juger si une connexion est normale ou déconnectée.
Parlant du protocole TCP (Apprentissage recommandé : Tutoriel vidéo SWOOLE )
Nous savons tous qu'un logo de groupe de cinq yuans est une connexion réseau , create Il y a trois poignées de main pour une connexion et quatre poignées de main pour déconnecter une connexion. Que le serveur ou le client initie la fermeture de la connexion, il terminera le processus en quatre vagues. De cette façon, tout est parfait, le système recycle ce fd et la couche application peut également gérer les questions associées via onClose. rappel.Qu'est-ce que fd ?
Le nom scientifique de fd est un descripteur de fichier. Dans la philosophie Unix selon laquelle tout est un fichier, ce fd est l'identifiant exposé par la couche système à la couche métier pour représenter une connexion réseau à cinq tuples. . Vous pouvez simplement le comprendre comme un index. En exploitant ce fd, la couche système peut trouver la connexion correspondante et effectuer une série d'opérations, telles que l'envoi de données à l'élève du réseau, la fermeture de la connexion, etc.Pourquoi le cœur bat-il ?
Comme mentionné tout à l'heure, si nous voulons fermer une connexion, nous pouvons lancer une opération de fermeture de connexion sur fd au niveau de la couche métier. Prenons swoole comme exemple :$server->close($fd);
Quel est le mécanisme du rythme cardiaque ?
Le mécanisme de battement de cœur est une méthode fournie par la couche métier pour déterminer si une connexion est active, permettant au système de déterminer si une connexion a échoué. Il existe généralement deux méthodes d'implémentation : 1 :Le client envoie régulièrement un paquet de battements de cœur pour indiquer au serveur que je suis toujours en vie. Le serveur vérifie régulièrement la liste de tous les clients pour voir si l'heure est venue. leur dernier paquet de battements de cœur est passé. S'il est trop long, il sera considéré qu'il n'y a pas de battement de cœur, cela sera considéré comme une connexion morte et la connexion sera fermée activement.
2 : Le serveur demande régulièrement à tous les clients, êtes-vous toujours en vie ? Si vous êtes en vie, donnez-moi un feedback. Les clients qui ne recevront pas de feedback seront tués sans pitié.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!