Я пытаюсь создать простую службу REST для обслуживания аудиофайлов (с поддержкой поиска). Я использую этот пример, который основан на Джерси: https://github.com/aruld/jersey-streaming/tree/jersey2Spark java Обслуживание mp3-файла (динамический с поиском)
Это довольно простой пример, он прислушивается к GET и HEAD, запросы, используемые браузеры, обратите внимание на заголовок Range и отвечать 206 плюс архив запрошенный срез (с байтовыми диапазонами). Уловка здесь в том, что я переписываю это на искровой java (крошечный каркас с встроенным сервером причала).
Кажется, что все в порядке. Браузер отправляет GET, и сервер соответственно отбирает ответ ... хотя игрок никогда не загружает и ничего не играет. Сделан запрос и заголовок ответа совершенен:
Запрос:
Host: localhost:4567
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Range: bytes=0-
Connection: keep-alive
Ответ:
Accept-Ranges: bytes
Content-Length: 1048577
Content-Range: bytes 0-1048576/5563904
Content-Type: audio/mp3
Date: Sat, 20 Aug 2016 05:41:23 GMT
Last-Modified: Sat Aug 20 01:12:37 BRT 2016
Server: Jetty(9.3.6.v20151106)
sasd
Одна вещь, которую я заметил, что, кажется, передача этого запроса никогда не заканчивается. Когда я закрываю сервер, передача заканчивается на 0,03 КБ (всегда).
Мое доказательство концептуального кода приложения: http://pastebin.com/xjkLne7E