我一直在使用这个库repejota/phpnats来开发可以订阅特定频道的NATS客户端。但是在连接之后,接收几条消息并且有30秒的空闲时间,它会自动断开而不会中断。但是我的Node.js客户端在同一台NATS服务器上运行良好。
以下是我订阅的方式......
$c->subscribe(
'foo',
function ($message) {
echo $message->getBody();
}
);
$c->wait();
任何建议/帮助???
谢谢!
答案 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