Home > Article > Backend Development > Use PHP to write sokket to connect to a third-party server. You need to keep the connection constant and send a heartbeat to the other party every three minutes. PHP is single-threaded. How can this be achieved?
The business process is like this. Our php server uses socket to connect to the other party's server. The other party's server will send messages to our php server from time to time, so our php needs to read all the time. While reading, we also need to send a heartbeat to the other party every three minutes. When php keeps reading and no message is sent from the other party, php keeps waiting. How can we ensure that a heartbeat is sent every three minutes?
The business process is like this. Our php server uses socket to connect to the other party's server. The other party's server will send messages to our php server from time to time, so our php needs to read all the time. While reading, we also need to send a heartbeat to the other party every three minutes. When php keeps reading and no message is sent from the other party, php keeps waiting. How can we ensure that a heartbeat is sent every three minutes?
Generally, isn’t it good to use php to do this?
Delay for 3 minutes sleep(3)
Keep executing the script set_time_limit(0)
Disconnect from the client and continue execution ignore_user_abort(0)
You can consider using swoole
You also need to send a heartbeat to it while reading, use php-cli to do it
swoole can easily handle your needs