Swoole のハートビート検出は非常に簡単で、heartbeat_check_interval と heartbeat_idle_time を設定するだけです。
heartbeat_check_interval: サーバーが数秒ごとにタイムアウトを検出することを示します。 heartbeat_idle_time より小さくしてください。 (推奨学習: swoole ビデオ チュートリアル )
heartbeat_idle_time は、切断にかかる時間を示します。
サンプル コードでは、5 秒の検出があるかどうかを示しています。 10 秒以内に中断 サーバーにデータが送信されない場合は切断されます
<?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();
cli 側がサービスを開始します。
クライアント アクセス
クライアントは最初にリクエストを送信します。時刻は 2018-08-23 11:39:23 で、それ以降は送信されません
テクノロジー共有写真
サーバーは、2018-08-23 11:39:33 にクライアントとの接続を切断しました。ちょうど 10 秒です
以上がスウールをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。