ゲートウェイ/ワーカー開発モデルは、サーバー側のハートビート検出をサポートしています。これにより、アプリケーション層のハートビートをクライアントに定期的に送信でき、クライアントの極端な切断 (停電) を即座に検出できます。 、突然のネットワーク障害など)。
注: 長時間接続するアプリケーションではハートビートを追加する必要があります。そうしないと、長時間通信がないため、ルーティング ノードによって接続が強制的に切断される可能性があります。 (推奨学習: workman チュートリアル)
ハートビートには 2 つの主な機能があります:
1. クライアントは定期的にポイント データをサーバーに送信します。長時間通信がないことにより一部のノードのファイアウォールにより接続がクローズされ、接続が切断されることを防止します。
2. サーバーはハートビートを通じてクライアントがオンラインかどうかを判断できます。クライアントが指定された時間内にデータを送信しない場合、クライアントはオフラインとみなされます。これにより、極端な状況 (停電、ネットワーク切断など) によりクライアントがオフラインになるイベントを検出できます。
ハートビート間隔の推奨値:
クライアントは 60 秒未満 (55 秒など) のハートビート間隔を送信することをお勧めします。
例:
<?php require_once __DIR__ . '/Workerman/Autoloader.php'; use Workerman\Worker; use Workerman\Lib\Timer; // 心跳间隔55秒 define('HEARTBEAT_TIME', 55); $worker = new Worker('text://0.0.0.0:1234'); $worker->onMessage = function($connection, $msg) { // 给connection临时设置一个lastMessageTime属性,用来记录上次收到消息的时间 $connection->lastMessageTime = time(); // 其它业务逻辑... }; // 进程启动后设置一个每秒运行一次的定时器 $worker->onWorkerStart = function($worker) { Timer::add(1, function()use($worker){ $time_now = time(); foreach($worker->connections as $connection) { // 有可能该connection还没收到过消息,则lastMessageTime设置为当前时间 if (empty($connection->lastMessageTime)) { $connection->lastMessageTime = $time_now; continue; } // 上次通讯时间间隔大于心跳间隔,则认为客户端已经下线,关闭连接 if ($time_now - $connection->lastMessageTime > HEARTBEAT_TIME) { $connection->close(); } } }); }; Worker::runAll();
上記の構成では、クライアントが 55 秒以上サーバーにデータを送信しない場合、サーバーはクライアントがサーバーにデータを送信しないと判断します。オフラインです。接続を閉じて、onClose をトリガーします。
以上が労働者の心拍の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版
中国語版、とても使いやすい

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
