PHP NATS Client отключается через некоторое время простоя

Я использовал эту библиотеку Repejota / phpnats для разработки клиента NATS, который может подписаться на определенный канал. Но после подключения, получения нескольких сообщений и простоя в течение 30 секунд, он отключается без перерыва. Однако мой клиент Node.js хорошо работает с тем же сервером NATS.

Вот как я подписываюсь...

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

Любые предложения / помощь???

Спасибо!

0 ответов

Был ли это просто тайм-аут PHP по умолчанию, убивающий его? Может быть, примерно так:

ini_set('max_execution_time', 180); // gives about 3 minutes for example
$options = new ConnectionOptions();
$options->setHost('127.0.0.1')->setPort(4222);
$client = new Connection($options);
$client->connect(-1);

Вам нужно установить параметры подключения как -1

По умолчанию сценарии PHP не могут жить вечно, поскольку PHP следует рассматривать как апатрид. Это сделано намеренно, и по умолчанию продолжительность жизни составляет 30 секунд (хостеры обычно увеличивают это время до 180 секунд, но на самом деле это не имеет значения). Вы можете продлить это время самостоятельно, установивmax_execution_time на любое значение (с 0означает "навсегда"), но это не рекомендуется, если вы не знаете, что хотите этого. Если нет, то обычно используемый подход состоит в том, чтобы заставить скрипт вызывать сам себя (то есть через запрос GET), часто передавая некоторые параметры, чтобы позволить запущенному скрипту возобновить работу с того момента, когда вызывающий завершил работу.

Другие вопросы по тегам