PHP socket 心跳检测,重新链接怎么写?

我这边只是客户端. 为预防服务端断线情况, 需增加心跳机制来重连. 具体代码不知道怎么整

主要代码如下:

$fp = stream_socket_client("tcp://{$host}:{$port}", $err, $errstr, 30);

if (!$fp) { // 连接失败
echo 'error';
}

ignore_user_abort();//关闭浏览器后,继续执行php代码
set_time_limit(0);//程序执行时间无限制
$sleep_time = 5;//多长时间执行一次
$switch = include 'switch.php';
while ($switch) {
$switch = include 'switch.php';
//心跳检测

if (检测成功){
    fwrite($fp, 'xxxx');
    ....
}else{
    $fp = stream_socket_client("tcp://{$host}:{$port}", $err, $errstr, 30);
    if (!$fp) { // 连接失败
        echo 'error';
    }
}

也是最近在看socket的内容,也不是很懂,我感觉心跳是不是需要用pcntl_param(4) 4秒发送一个信号 这样的内容来实现呢?
你现在是怎么实现的呀