Поток мультимедиа, контролируемый сервером .Net Core - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно написать веб-приложение, которое может передавать аудиофайлы клиентам.Сложность в том, что сервер должен управлять потоковой передачей , поэтому я не могу передать простой mp3 (или что-то в этом роде) клиенту как «application / octet-stream».Основные требования:

  • Каждый клиент может прослушать каждый трек только один раз.Если я дам клиентам mp3, они могут просто скачать его и воспроизвести столько раз, сколько захотят.Клиенты могут воспроизводить дорожку более одного раза, но в этом случае только сервер может подтвердить это.
  • Потоковая передача должна быть непрерывной, поэтому после того, как клиент инициировал «запуск»,они не могут пропускать вперед или возвращаться в дорожку.
  • Мы не поддерживаем и не будем поддерживать поиск и воспроизведение, поэтому решение должно соответствовать только этому сценарию, оно не обязательно должно быть универсальным, но онодолжен быть очень хорошо масштабируемым.

Текущая настройка заключается в том, что у нас есть клиентское приложение Angular 6 и серверная часть Asp.Net Core 2.1 с SignalR для связи в реальном времени (в настоящее время для другихтолько варианты использования).Мои вопросы:

  1. Новый SignalR имеет некоторые возможности для «потоковой передачи данных» (https://docs.microsoft.com/en-us/aspnet/core/signalr/streaming?view=aspnetcore-2.1), но я не нашел ничего, что доказывало бы, что это может справиться с моим сценарием (мы будему меня большие нагрузки, может быть, даже тысячи по-настоящему параллельных прослушиваний.) Предназначена ли эта функция потоковой передачи для этого?

    Если SignalR не будет правильным выбором, кто-то может направить меня в правильном направлении? Оптимальное решение также будетоставайтесь в стеке ядра .net.

  2. Как клиент может воспроизводить поток? Я не знаком с аудиокодеками. Если я просто разбил свой трек на 100 или 1000 фрагментов и отправил первыйодин для клиента, он уже воспроизводим?

Заранее спасибо.

edit: клиент находится на компьютерах в частной локальной сети. У них не будет доступа к Интернету (поэтому они не могут использовать, например, инструменты записи на основе флэш-памяти с других сайтов.) Они также не будут иметь повышенных прав на компьютер, поэтому они не могут устанавливать инструменты записи.Не нужно быть пуленепробиваемым, но нам нужна некоторая защита от простых и простых «атак».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...