Chatroulette своими руками — 50 строк кода

image
Пару месяцев назад я приглашал всех на веб-семинар о p2p во Flash, но сделал это слишком поздно, поэтому наверняка большое количество желающих на него не попало. Самое ценное, что я извлек из этого семинара — то, что peer-to-peer приложения во Flash делать очень легко. Правда у самого руки очень долго до этого не доходили.

Но буквально вчера руки очень сильно зачесались, и посидев ночку я разобрался в том, как работает технология p2p во Flash. Соединить видеопотоки двух flash-клиентов мне показалось мало, поэтому решил сделать что-то более интересное:
  1. Пользователь открывает страничку
  2. Выбирает тему для разговора (один из постов на главной хабры)
  3. Разговаривает со всеми, кто выбрал эту же тему

Сделал. Тут мой пример видеоконференции, исходники клиента и сервера можно скачать отсюда. Минимальные требования для примера — наличие Flash Player 10 и вэб-камеры.

UPD: Все это добро хостится на AppEngine, могут закончиться бесплатные квоты и все перестанет работать. Перекинул клиента на narod.ru. Если работать не будет — заходите сюда
+66
3 сентября 2010, 08:04
165
Bobos 52,7

комментарии (59)

0
zwie #
Давно уже витает мысль — музыкальный p2p — плеер на flash/flex. Реализуйте кто-нибудь =)
0
Bobos #
Для таких вещей есть multicast — очень мощная штука, один флеш плеер вещает, другие друг другу передают. Почитать можно тут: www.flashrealtime.com/
–1
BarsMonster #
А насколько хорошо мультикаст работает в интернете? Хорошо дружит с натами?
+1
EvilX #
Если говорить об этом multicast, то в интернете не работает.
0
Fesor #
Чем-то напстер напомнило…
0
neelts #
YouTube стоит присмотреться к технологии, активировать object replication на популярных видео и получить заметное снижение нагрузки на сервера, короче много можно сэкономить)

пример, кстати — www.flashrealtime.com/video-on-demand-over-p2p-in-flash-player-101-with-object-replication/
0
el777 #
Или аналог сопкаста, не ограниченный одной платформой.
А так можно будет в любом браузере, поддерживающем флеш, открывать.

Скажите, а флеш-приложение под мак и линукс можно сделать? По аналогии с .exe под винду?
0
fzn7 #
Да не вопрос. Adobe AIR
0
Bobos #
А в air еще круче — там можно вообще работать без сервера :)
0
el777 #
Жаль, что без камеры не пускает :(
0
Bobos #
Без какмеры теряется весь смысл видео-конфереций :)
0
NeOn4eG #
зато с тв-тюнером пускает :)
0
el777 #
Это очень хорошо. Только он у меня внешний — включается между компом и моником :)
0
NickMitin #
У вас оптический обман получился, когда изображение скролишь, кажется, что квадратики двигаются.
+3
gionet #
Зря хоронят хабр, хабр снова торт!
+4
proxor #
Торт был бы, если бы автор подробно расписал как работает р2р во флеше, и свои изыскания. А так не торт, а только кексик :)
0
xsash #
где-то по хабру пробегали онлайн сервисы видеоконференций на флеше, линком не кините?
+2
flasher108 #
Новые возможности FP 10.1 не задействованы (RTMFP Groups), а ведь они дают возможность соединять p2p гораздо больше людей, чем без их использования.
–2
Bobos #
Пытался — плеер ругается, говорит «нативные функции нельзя». Под air все работает. Но так лучше, чем на эйре, т.к. не каждый будет ставить себе эйр-приложение.
+3
flasher108 #
Плохо пытались значит, все отлично работает.
+2
infi #
Я вообще разочаровался в этих чатрулетах, все засрут.

Было такое дело, ехал с ноутом (на пассажирском) там йота, подъезжаем к кремлю, думаю: «ого, наверное будет интересно, век высоких технологий, кто нить за десятки тысяч километров посмотрит на live вокруг кремля.», х*й там, в самом прямом смысле, пока проезжали мимо кремля, а потом мимо храма Христа — я только и занимался тем, что переключал на следующего, потому-что всем нужно было потыкать гениталиями в камеру.
+8
Bobos #
Надеюсь, в моем чате никто тыкать хуем не будет
0
infi #
Был бы чат…

Вообще, надеюсь что какой-нить гигант с достаточными ресурсами для цензуры все таки сделает подобный сервис… youtube например.
0
Bobos #
Сейчас прикручу :)
0
Bobos #
Прикрутил, под своим видео строка статуса — пишите сообщение, нажимаете Enter :)
+1
CoF #
А можно ли на базе p2p flash сделать внутрибраузерный торрент-клиент?
0
Bobos #
Да
0
scamp #
Ну, кто-то обязательно его сделает.
0
alkhankhel #
Флеш из под браузера, может сохранять и читать файлы?
0
Bobos #
Точно :)
0
mrskam #
в shared object может. По умолчанию стоит лимит в 100кб, что мало, но можно програмно показать пользователю запрос на увеличение места, вплоть до unlimited.

Так что все можно.
0
neelts #
может с помощью диалоговых окон, в принципе этого достаточно, файлик скачался в память или в SharedObject, а дальше только сохранить нажимаем и готово.
0
r21514 #
Я прав, что для работы обязательно требуется чтобы на стороне одного из пользователей был белый IP с открытыми наружу портами?
0
Bobos #
Файервол должен пропускать UDP-пакеты. Этого достаточно.
–4
MAXH0 #
Добрый день. Вы дали очередное доказательство Хабрателепатии :)
Наш Центр дополнительного образования сейчас занялся по Президентскому гранту дистанционным образованием детей инвалидов. Деньги уже попилены мимо нас, и приходится делать все на энтузиазме.
Пока планируем конференции через скайп-подобные программы, но через сайт ИМХО круче. За поддержание сайта отвечаю я, так что — надеюсь на Вашу помощь.
+2
MOVe #
Не понимаю. Если деньги попилены кем-то, то пусть они и делают. Не? :) Какой смысл?
+2
janvarev #
Может, кому-нибудь о распиле напишете кроме Хабра?
А то вы сделаете на энтузиазме… как сможете, а потом на Хабре появится статья в духе «На образование детей-инвалидов выделили NN млн. руб., а опять получился ужас».
0
MAXH0 #
Надеюсь будет не ужас. Что уже сделано выложу на Хабр.
И знаете еще что… Главное сейчас запустить процесс, а дальше посмотрим, кто, кому и сколько должен.
+1
Lite #
Телефон прокуратры ищите в справочнике.
+1
EvilX #
Здесь халявы нет. А вы, если знаете, что деньги украдены — соучастник преступления.
0
MAXH0 #
Н-да… Плохо вы представляете систему.
Деньги не «украдены», а «освоены», по другим статьям. Когда «осваивать» стало нечего, скинули нам.
Нам пришло оборудование, быстрый интернет, будут курсы повышения квалификации, но живых денег в бюджете уже нет. Они уже ушли на предыдущие работы. Т.е. прямого преступления нет.
Наш инженер сам тянул провода по зданию, я сам выложил на готовом движке «сайт».
0
EvilX #
Я прекрасно знаю, как работает эта система — и это больше всего бесит.
Вот говорят: русские ленивые, бухаю и из-за того все проблемы. А на самом деле проблемы все из-за таких вот дурков-начальников, которые не могут бюджет расчитать или просто слишком много воруют.
0
MAXH0 #
А что тогда говорите… Я по максимуму честно стараюсь сделать свое дело. В общем то на общественных началах (по крайней мере пока. Пол-ставки методиста в дист. обр. висит как морковка перед осликом — и не дают и не отказывают). И Степень свой IT-некомпетентности я понимаю. Другие, кстати, нет. Диалог с нашим IT инженером.
В комплекте есть сервер.
И. — В перспективе надо организовывать обучение через сервер, а не через сайт.
Я. — Ты понимаешь, что значит обеспечить безопасность сервера?
И. — Я уже просил деньги на лицензионный антивирус.

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

И Бюджет ясн. дело завышен. Сметная цена компа. где то в 1,5 выше чем купить в магазине (а магазин тоже не в убыток себе торгует). Но был кризис, волотильность цен, и пр. Отбрешутся если что.

Честно — так лучше чем ничего. Мне стало интересно работать. Раньше только дети держали, а теперь действительно интересно. Столько можно сделать (не получится и хр. с ним, но стоит попытаться.).
0
EvilX #
Извиняюсь за нескромный вопрос, вам сколько лет? Откуда такой альтруизм?
0
MAXH0 #
38.
В образовании прагматики не задерживаются. Поэтому детей учит дивный заповедник из неудачников, альтруистов, пофигистов, пост.декретных дам и пр. социального хлама.
Есть конечно и карьеристы, но это еще более отвратное зрелище.

–1
EvilX #
Пиздец.
+2
ekungurov #
На что конкретно Вы надеетесь, на еще одно чудо? Если у Вас действительно есть желание сделать что-то полезное, настройте BigBlueButton в связке с одной из систем управления обучением (насколько я знаю, в ПСПО планируется использовать Moodle). Или наймите юниксового админа, который Вам всё это настроит.
0
MAXH0 #
Спасибо за совет. Посмотрим.
0
MAXH0 #
Кстати, этот топик у меня лежит в закладках и я планировал его реализовывать. Хотя и боялся.
А тяга к велосипедам неискоренима(Каюсь). Как вижу, что новое, чешутся руки — хочу. Наверное это следствие работы над научными и техническими проектами школьников.
+2
erlyvideo #
Почему никто не вспоминает о том, что все эти игрушки на флеше не более чем игрушки, пока в нём нет эхоподавления?
0
professor_kuvalda #
Плюс: программа не может считаться настоящей программой, пока она не написана на хаскеле.
+2
erlyvideo #
Мне бы не хотелось, что бы моё замечание ассоциировалось с этой нелепостью.
–1
RazoR_Empire #
Эхоподавление можно включить в настройках флеша во вкладке аудио.
0
erlyvideo #
Нет, это не то эхоподавление, которое echo cancellation, это echo suppression. По факту оно не работает
0
Whitesunset #
В диалоговом окошке

«Нужно включить камру. Иначе никак :)»

поправьте
+1
crea7or #
;llllllllll
0
crea7or #
Ой, извините. Это у меня тут скрипт с ума сошёл.
–1
gene4000 #
«Неожиданно» попал в ситуацию zerut.ru/c/2348
0
copyhold #
А что там с задержками?
Есть ли задержка больше 25 мс?
(хочется делать репетиции онлайн)

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