La détection du rythme cardiaque de Swoole est très simple. Il vous suffit de configurer heartbeat_check_interval et heartbeat_idle_time.
heartbeat_check_interval : Indique que le serveur détecte un délai d'attente toutes les quelques secondes. Soyez plus petit que heartbeat_idle_time. (Apprentissage recommandé : tutoriel vidéo swoole )
heartbeat_idle_time indique combien de temps il faut pour se déconnecter
L'exemple de code démontre, 5 secondes de détection, s'il y a un problème dans les 10s Si aucune donnée n'est envoyée au serveur, elle sera coupée
<?php date_default_timezone_set(‘Asia/Shanghai‘); //创建Server对象,监听 127.0.0.1:9501端口 $serv = new swoole_server("127.0.0.1", 9501); $serv->set([ ‘heartbeat_check_interval‘ => 5, ‘heartbeat_idle_time‘ => 10, ]); //监听连接进入事件 $serv->on(‘connect‘, function ($serv, $fd) { echo "[".date(‘Y-m-d H:i:s‘)."]Client: Connect.\n"; }); //监听数据接收事件 $serv->on(‘receive‘, function ($serv, $fd, $from_id, $data) { $serv->send($fd, "[".date(‘Y-m-d H:i:s‘)."]Server: ".$data); }); //监听连接关闭事件 $serv->on(‘close‘, function ($serv, $fd) { echo "[".date(‘Y-m-d H:i:s‘)."]Client: Close.\n"; }); //启动服务器 $serv->start();
Ouvrez le service côté cli.
Accès client
Le client envoie d'abord une demande, l'heure est le 23/08/2018 11:39:23, et ne l'enverra pas plus tard
Partage technologique d'images
Le serveur a déconnecté le client le 23/08/2018 à 11:39:33. Exactement 10s
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!