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!

Workerman's WebSocket client enhances real-time communication with features like asynchronous communication, high performance, scalability, and security, easily integrating with existing systems.

The 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

The article discusses optimizing Workerman for low-latency applications, focusing on asynchronous programming, network configuration, resource management, data transfer minimization, load balancing, and regular updates.

The article discusses implementing real-time data synchronization using Workerman and MySQL, focusing on setup, best practices, ensuring data consistency, and addressing common challenges.

The 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

The 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.

Workerman's WebSocket server enhances real-time communication with features like scalability, low latency, and security measures against common threats.

The 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

SublimeText3 Chinese version
Chinese version, very easy to use

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

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

WebStorm Mac version
Useful JavaScript development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment