Update notifications

New type of notifications is added to nginx-rtmp – update notifications. They are called periodically with given timeout while stream is in play or publish state. If result code is other than 2xx then connection is terminated. All usual parameters are passed with this call (including client request arguments).

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.

Advertisements
  1. #1 by Sergey on November 16, 2012 - 10:46 am

    Роман, спасибо большое! Было в душе знакомое программером ощущение, что дропить сессии на удаленном сервере не дает гарантию отключения клиента. Теперь гарантия есть! Единственно – прошу уточнить, если нет связи с сервером валидации запросов – модуль дропнет клиентов?

    • #2 by rarut on November 16, 2012 - 1:05 pm

      Спасибо за идею. В новой версии on_update игнорит такие случаи (см update)

      • #3 by Sergey on November 17, 2012 - 4:31 am

        Роман, не хочу злоупотреблять Вашим вниманием к просьбам, но все же думаю надо продолжать трансляцию только если статус 200, в противном случае отключать – даже при отсутствии связи. Просто если использовать notify как триггер для оплаты следующего периода времени, будет обидно если кто-то сможет пользоваться неоплаченными услугами.

      • #4 by rarut on November 17, 2012 - 5:36 am

        Я сделаю эту фичу опциональной

      • #5 by rarut on November 17, 2012 - 7:44 am

        Добавил notify_update_strict. Подробности здесь: https://github.com/arut/nginx-rtmp-module/wiki/Directives.

  2. #6 by Sergey on November 17, 2012 - 5:33 pm

    Теперь все на месте, спасибо большое!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: