Gateway/Worker 개발 모델은 서버 측 하트비트 감지를 지원하여 정기적으로 애플리케이션 계층의 하트비트를 클라이언트에 보낼 수 있으며, 극단적인 클라이언트 연결 끊김 상황(정전, 갑작스러운 네트워크 장애 등)을 신속하게 감지할 수 있습니다. .).
참고: 긴 연결 애플리케이션은 하트비트를 추가해야 합니다. 그렇지 않으면 오랫동안 통신이 없어 라우팅 노드에 의해 연결이 강제로 끊어질 수 있습니다. (추천 학습: workerman tutorial)
heartbeat에는 두 가지 주요 기능이 있습니다:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

드림위버 CS6
시각적 웹 개발 도구
