ReactPHP / Socket服务器 - 设置连接超时

时间:2016-11-29 14:03:57

标签: php sockets reactphp

我有使用react \ socket的TCP套接字服务器。

根据从客户端收到的数据,它做某事,然后关闭与客户端的连接。

问题是我无法理解如何进行连接超时, 如果服务器在一段时间内没有收到任何数据,如何关闭连接?

我正在使用stream_set_timeout()

查找与stream_socket_accept()相同的内容
<?php

require __DIR__ . '/vendor/autoload.php';

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);

$socket->listen(2222);

$socket->on('connection', function ($conn) {

    $conn->on('data', function ($data) use ($conn) {

        if (substr($data, 0, 3) == 'one') {
            $conn->end('end_two');
        }
        else if (substr($data, 0, 3) == 'two') {
            $conn->end('end_two');
        }
        else {
            $conn->close();
        }
    });

});
$loop->run();
stream_set_timeout($client, 5);

1 个答案:

答案 0 :(得分:3)

您需要为\>添加一个计时器,如下例所示。

\d

示例来自:

https://github.com/reactphp/socket/issues/42