Я хочу создать простой сервер потокового аудио Java.Для простоты это будут просто статичные MP3-файлы, но я уверен, что теория переносится.Клиенты могут быть локальными или через Интернет и могут быть любым устройством или компьютером, которые могут быть запрограммированы для связи с сервером.
Я никогда не программировал ничего, связанного с потоковой передачей / сетью или сервером / клиентом, поэтому я думал, что это будетбудет полезным упражнением для изучения чего-то нового.
Я думаю, что нужно учесть:
Аутентификация клиента - как это будет сделано, как сервер узнаетэтот пользователь является предполагаемым пользователем.
На клиенте будет какая-то буферизация.Когда клиент читает данные из буфера, вероятно, будет блокировка файла в файле кэшированного буфера, поэтому я не смогу просто добавить новый сегмент файла в конец.
Сколько файлов MP3 вам на самом деле нужно для его воспроизведения?Является ли он линейным, поэтому первый x KB содержит всю информацию о первых y секундах звуков музыки.
Сегменты какого размера я передаю в файл?
Можно ли узнать, как далеко вы находитесь в файле MP3 в потоке?Как бы с этим справиться?
Какой протокол мне фактически использовать для потоковой передачи?Я предполагаю, что какой-то HTTP-запрос будет лучше здесь?Можно сделать HTTP-запрос через порт, отличный от 80, не так ли?
Есть ли в Java встроенные протоколы для надежной передачи, или вам нужно разобраться с мелочами?и иметь дело с отправкой пакетов назад и вперед с подтверждениями ... и т.д ...
Возможно ли зашифровать трафик?С достаточной безопасностью для файла, который не читается, но не настолько, чтобы маломощные устройства, такие как мобильные устройства, не могли расшифровать его достаточно быстро для плавного воспроизведения.
Я уверен, что естьмне нужно рассмотреть еще много вещей, но это другие, которые я могу придумать из головы.
Полагаю, что во всем вышесказанном вопрос на самом деле не был, это было больше мысли вслухИтак, я думаю, почему вопросы: с чего мне начать?Есть ли интересные чтения?у кого-нибудь есть какие-либо мысли по поводу вышесказанного?
Просто повторюсь, я смотрю здесь на "переизобретение колеса", я хотел узнать о подобных вещах по мере продвижения вперед, чтобы я мог перенестизнание на другие вещи.