
Under normal circumstances, when the client disconnects, it will send a fin packet to the server. After receiving the fin packet, the server learns that the client connection is disconnected and immediately triggers the onClose event callback. .
However, there are some extreme situations such as client power outage, network shutdown, network cable unplugging, routing failure, etc. In these extreme situations, the client cannot send the fin packet to the server, and the server cannot know that the connection has been disconnected. If there is regular heartbeat data transmission between the client and the server, the disconnection of the connection will be discovered in a relatively timely manner and the onClose event callback will be triggered.
In addition, the routing node firewall will close socket connections that have not communicated for a long time, causing long socket connections to be disconnected. Therefore requires the client and server to send heartbeat data regularly to keep the connection from being disconnected.
How to configure heartbeat detection in GatewayWorker?
Currently GatewayWorker supports two types of heartbeat detection. The server sets the number of seconds to close the connection if it does not receive a heartbeat (recommended). It also supports the server to send heartbeat data to the client regularly (not recommended).
The client sends heartbeats regularly (recommended)
The client sends heartbeats to the server regularly (the interval is preferably less than 60 seconds). The server configuration is similar to the following:
$gateway = new Gateway("Websocket://0.0.0.0:8585");
$gateway->pingInterval = 55;
$gateway->pingNotResponseLimit = 1;
$gateway->pingData = '';The meaning of the above configuration is that if there is no request within 55 seconds of client connection pingInterval*pingNotResponseLimit=55 seconds, the server will think that the corresponding client has dropped offline, and the server will close the connection and trigger the onClose callback.
For more workerman knowledge, please pay attention to the workerman tutorial column.
The above is the detailed content of How workerman stays connected. For more information, please follow other related articles on the PHP Chinese website!
What Are the Key Features of Workerman's Built-in WebSocket Client?Mar 18, 2025 pm 04:20 PMWorkerman's WebSocket client enhances real-time communication with features like asynchronous communication, high performance, scalability, and security, easily integrating with existing systems.
How to Use Workerman for Building Real-Time Collaboration Tools?Mar 18, 2025 pm 04:15 PMThe article discusses using Workerman, a high-performance PHP server, to build real-time collaboration tools. It covers installation, server setup, real-time feature implementation, and integration with existing systems, emphasizing Workerman's key f
What Are the Best Ways to Optimize Workerman for Low-Latency Applications?Mar 18, 2025 pm 04:14 PMThe article discusses optimizing Workerman for low-latency applications, focusing on asynchronous programming, network configuration, resource management, data transfer minimization, load balancing, and regular updates.
How to Implement Real-Time Data Synchronization with Workerman and MySQL?Mar 18, 2025 pm 04:13 PMThe article discusses implementing real-time data synchronization using Workerman and MySQL, focusing on setup, best practices, ensuring data consistency, and addressing common challenges.
What Are the Key Considerations for Using Workerman in a Serverless Architecture?Mar 18, 2025 pm 04:12 PMThe article discusses integrating Workerman into serverless architectures, focusing on scalability, statelessness, cold starts, resource management, and integration complexity. Workerman enhances performance through high concurrency, reduced cold sta
How to Build a High-Performance E-Commerce Platform with Workerman?Mar 18, 2025 pm 04:11 PMThe article discusses building a high-performance e-commerce platform using Workerman, focusing on its features like WebSocket support and scalability to enhance real-time interactions and efficiency.
What Are the Advanced Features of Workerman's WebSocket Server?Mar 18, 2025 pm 04:08 PMWorkerman's WebSocket server enhances real-time communication with features like scalability, low latency, and security measures against common threats.
How to Use Workerman for Building Real-Time Analytics Dashboards?Mar 18, 2025 pm 04:07 PMThe article discusses using Workerman, a high-performance PHP server, to build real-time analytics dashboards. It covers installation, server setup, data processing, and frontend integration with frameworks like React, Vue.js, and Angular. Key featur


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version
Recommended: Win version, supports code prompts!

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),






