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!

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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Notepad++7.3.1
Easy-to-use and free code editor

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