Техническое задание
Необходимо создать сайт с одной единственной кнопкой "Позвонить". После нажатия, пользователь на угад связывается с таким же пользователем, который нажал на эту кнопку и в ожидании. Затем они могут разговаривать, используя микрофон. Этот сервис для начала должен выдерживать разговор одновременно 10 000 пользователей и сразу необходимо заложить возможность в недалеком будущем создание мобильного приложения. Я так понимаю лучше сразу строить эту систему на микросервисах REST.
Я пока новичок в этой сфере и не знаю, как правильно это называется Интернет-телефония, IP-телефония или VoIP. Пока даже не понял, что из этого является частным другого.
"Что говорит Google?"
Термины. Сразу конечно проблема с терминологией: по таким запросам как "voice chat" почему-то я в основном получаю ссылки на исходники по пересылке записанных аудио, т.е. не разговор в реальном времени, а как в современных мессенджерах предварительное записывание голоса с задерживанием кнопки микрофона. Если пишу "Интернет телефония" то тогда получаю ссылки по созданию приложений для звонка на мобильный телефон. Но мне не надо звонить на мобильный телефон, а необходимо связать два компьютера в интернете как это делает Skype и т.п.
P2P. Мне, я так понимаю лучше сразу обеспечить связь P2P между клиентами?
.NET. Как .NET разработчик мне конечно хочеться использовать в основе этот стек технологий или лучше использовать другой стек?
XMPP. Если можно так выразится, то часто предлагающее было использование для моих целей протокола XMPP (бывший Jabber).
SignalR. У меня есть небольшой опыт написание чата, где я использовал библиотеку SignalR и на мое удивление никто не предлагал использовать SignalR.
Вопрос
Если попытаться спросить конкретно без слов "с чего начать", то мой вопрос звучит так:
Для начала мне бы хватил какой-нибудь маленький пример для разговора двух клиентов в локальной сети, ведь там у всех белые IP и скорость хорошая. Есть ли что-то готовое с чем я могу сделать прототип или библиотека/фреймворк с чего я могу менее безболезненно начать?
Ответ
Пример собственного велосипеда о котором ты спрашиваешь, можно найти здесь. В целом скоп задач, которые необходимо решить для разработки эффективной системы огромен, поэтому я бы на твоём месте смотрел исключительно в сторону готовых фреймворков. Большая часть из них строится на основе протокола SIP. Есть готовые коммерческие продукты, есть открытые и гибридные. Выбирай то, что тебе подходит и вперёд.
Комментариев нет:
Отправить комментарий