Архитектура чатрулетки

Может ли кто-нибудь объяснить мне архитектуру Chatroulette? Я думал о похожем проекте, который бы реализовал только поддержку аудио (для начинающих). Это лучший способ настроить этот сервер? Если да, то как мне поступить во флэш, понадобится ли мне flex 4? У меня есть некоторый опыт начинающих с C++, C# и java, но я никогда ничего не разрабатывал для Интернета.

Мне также было интересно, как рандомизатор подбирает участников. Как бы вы написали что-то подобное?

Я, очевидно, довольно невежественен здесь, и я был бы очень признателен за несколько советов относительно этой проблемы - я не ожидаю решения копирования и вставки. Было бы просто приятно услышать, как вы, ребята, будете решать эту проблему.

большое спасибо

3 ответа

Решение

AFAIK ChatRoulette использует новый набор API в Flash Player 10.1 под кодовым названием Stratus, который обеспечивает одноранговые соединения между экземплярами Flash Player.

Таким образом, вместо того, чтобы видео- и аудиопотоки передавались на специальный потоковый сервер, например, FMS или Red5, уникальные идентификаторы являются общими, и одноранговые узлы подключаются напрямую друг к другу.

Это дает большие возможности уменьшить нагрузку на сервер для потоковой передачи событий в реальном времени, когда одно соединение с потоком сервера может быть разделено между соседними соседями.

Можете ли вы представить счета за хостинг для чего-то вроде ChatRoulette, если Stratus не проталкивал потоки прямо между пирами?!

Если вы хотите узнать больше, ознакомьтесь с разделом Stratus, посвященным ребятам из Adobe: http://labs.adobe.com/technologies/stratus/

Как вы можете подобрать участников? легко. иметь переменную с именем "ожидающие пользователи", которая изначально установлена ​​в нуль. Когда пользователь подключается, если "ожидающие пользователи" равны нулю, сделайте подключающегося пользователя ожидающим пользователем. Если ожидающие пользователи не равны нулю, создайте новый поток, который управляет беседами этих двух пользователей, и установите ожидающих пользователей на ноль. Эта "случайность" означает, что если у вас много посетителей, разговоры должны быть случайными. Однако если за один раз разговаривают только 10 человек, это не значит, что вы получите потрясающие результаты. Вам нужно постоянное отключение / подключение, чтобы это работало.

С помощью Actionscript вы можете легко получить доступ к микрофону через Microphone.get() [используйте Google, чтобы получить больше информации]... Вы должны будете передать полученные данные на ваш сервер.

Чтобы не отправлять HTTP-заголовки без остановки, вы должны создать сокет [Actionscript поддерживает это, посмотрите на flash.net.[Socket/Sockets? я забыл]] и подключился к обычному написанному серверу, что легко сделать с помощью C#... я не пробовал это с C++ и не работал с java...

Сервер будет действовать как "прокси" между вашими клиентами...

Он использует потоковый сервер wowza, а не циррус Adobe, который вы не можете использовать в производстве из-за лицензионных ограничений.

http://www.streamingmedia.com/Articles/News/Featured-News/The-Tech-Behind-Chatroulette-66278.aspx

Другие вопросы по тегам