服务器端 server.php<?php
/*
Swoole已经内置了心跳检测功能,能自动close掉长时间没有数据来往的连接。
而开启心跳检测功能,只需要设置heartbeat_check_interval和heartbeat_idle_time即可。如下:
$this->serv->set(
array(
'heartbeat_check_interval' => 60,
'heartbeat_idle_time' => 600,
)
);
其中heartbeat_idle_time的默认值是heartbeat_check_interval的两倍。
在设置这两个选项后,swoole会在内部启动一个线程
每隔heartbeat_check_interval秒后遍历一次全部连接,检查最近一次发送数据的时间和当前时间的差
如果这个差值大于heartbeat_idle_time,则会强制关闭这个连接,并通过回调onClose通知Server进程。
小技巧:
结合之前的Timer功能,如果我们想维持连接,就设置一个略小于如果这个差值大于heartbeat_idle_time的定时器,在定时器内向所有连接发送一个心跳包。
如果收到心跳回应,则判断连接正常,如果没有收到,则关闭这个连接或者再次尝试发送。
*/
class server
{
private $serv;
/**
* [__construct description]<