Я написал потоковый сервер MJPEG по HTTP. Мой HTTP-сервер получает запрос и отправляет MJPEG. Пока все работает нормально. Я использую C ++ и POCO библиотеку.
Проблема в том, что я не знаю, когда остановить потоковую передачу. При прекращении просмотра из браузера (firefox) он отправляет тот же запрос, что и при запросе потока. Я использовал fiddler и следую за запросом HTTP при запросе и остановке браузера.
Запрос MJPEG из браузера (firefox):
GET http://mymjpegserver.com?vms=dvtel&deviceid=1&rgb=true&server=10.8.10.80&userid=admin&password= HTTP/1.1
Host: 10.1.39.7:8081
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Остановка потоковой передачи из браузера (Firefox), нажав на крестик кнопку «х»
GET http://mymjpegserver.com?vms=dvtel&deviceid=1&rgb=true&server=10.8.10.80&userid=admin&password= HTTP/1.1
Host: 10.1.39.7:8081
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
И затем после нескольких мгновений, когда я переключаю вкладки или окно браузера, он отправляет следующий запрос
GET http://mymjpegserver.com?vms=dvtel&deviceid=1&rgb=true&server=10.8.10.80&userid=admin&password= HTTP/1.1
Host: 10.1.39.7:8081
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
То есть только значение Accept изменяется на «image / png …». Но я не могу использовать это значение Accept для дифференциации завершения, поскольку этот запрос отправляется только при переключении Tab / Window.
А при закрытии вкладки ничего не отправляется на Http-сервер.
У меня вопрос, как на веб-сервере я могу проверить запрос на остановку потоковой передачи?
Задача ещё не решена.