application myapp {
live on;
notify_update_timeout 20s;
on_update http://localhost/update;
}
Default update timeout is 30 seconds, but it can be changed with
notify_update_timeout
directive.This notification can be used to synchronize expired sessions.
Update: on_update ignores server access errors, empty or broken HTTP responses. Connection is terminated only on non-2xx HTTP return code.
Update2: Added
notify_update_strict
directive toggling strict mode. When in strict mode all network errors and bad HTTP responses are treated as update errors. Default is off.
Роман, спасибо большое! Было в душе знакомое программером ощущение, что дропить сессии на удаленном сервере не дает гарантию отключения клиента. Теперь гарантия есть! Единственно - прошу уточнить, если нет связи с сервером валидации запросов - модуль дропнет клиентов?
ReplyDeleteСпасибо за идею. В новой версии on_update игнорит такие случаи (см update)
ReplyDeleteРоман, не хочу злоупотреблять Вашим вниманием к просьбам, но все же думаю надо продолжать трансляцию только если статус 200, в противном случае отключать - даже при отсутствии связи. Просто если использовать notify как триггер для оплаты следующего периода времени, будет обидно если кто-то сможет пользоваться неоплаченными услугами.
ReplyDeleteЯ сделаю эту фичу опциональной
ReplyDeleteДобавил notify_update_strict. Подробности здесь: https://github.com/arut/nginx-rtmp-module/wiki/Directives.
ReplyDeleteТеперь все на месте, спасибо большое!
ReplyDelete