PHP NATS客户端在一些空闲时间后断开连接

时间:2018-02-12 11:00:18

标签: php runatserver php-socket nats.io

我一直在使用这个库repejota/phpnats来开发可以订阅特定频道的NATS客户端。但是在连接之后,接收几条消息并且有30秒的空闲时间,它会自动断开而不会中断。但是我的Node.js客户端在同一台NATS服务器上运行良好。

以下是我订阅的方式......

$c->subscribe(
    'foo',
    function ($message) {
        echo $message->getBody();
    }
);
$c->wait();

任何建议/帮助???

谢谢!

3 个答案:

答案 0 :(得分:0)

这仅仅是默认的PHP超时吗? 也许是这样的:

ini_set('max_execution_time', 180); // gives about 3 minutes for example

答案 1 :(得分:0)

默认情况下,PHP脚本不能永远存在,因为应该将PHP视为无状态。这是设计使然,默认寿命为30秒(主机通常会将其延长到180秒,但这实际上是无关紧要的)。您可以通过将max_execution_time设置为任意值(0表示“永远”)来延长自己的时间,但是除非您知道自己需要这样做,否则不建议这样做。如果不是,那么通常使用的方法是使脚本调用自身(即通过GET请求),并经常传递一些参数,以使调用的脚本在调用者完成的地方恢复。

答案 2 :(得分:0)

$options = new ConnectionOptions();
$options->setHost('127.0.0.1')->setPort(4222);
$client = new Connection($options);
$client->connect(-1);

您需要将连接参数设置为-1