Видео смотреть бесплатно

Смотреть 4k видео

Официальный сайт mydebut 24/7/365

Смотреть видео бесплатно

wiz 28.06.2010 19:31

Мой OpenSource проектcroom - вебморда к xmpp конференциям

http://chat.mymcomm.net/#[email protected]

Как многие уже знают, однажды я нашёл прикольную морду к XMPP-конференциям - Speeqe. И начал везде её пиарить. Но у неё есть две больших проблемы:
президенты - любой вошедший по ссылке человек будет иметь ник ИмяПрезидентаСША123456. Это ужасно - надо знать команду из IRC /nick и надо это делать каждый раз при входе. Регистрация помогает, но это (о ужас!) надо регистрироваться. У себя на хосте я прикрутил OpenID, SSO и много других слов и саму систему это отнюдь не упростило.движок на питоне. Несмотря на то, что прекрасная библиотека Strophe может работать на голом nginx, Speeqe хочет свой сервер, питон, джангу и всё такое. При чём хочет совершенно необосновано.

Я долго хотел сделать велосипед, лишённый этих педалей недостатков и наконец решился. Устав от унылого проекта на работе я таки выкатил нечто, входящее в конфы и даже не вызывающее желание взять и ... поставить гаджим.
Основными критериями было:
возможность дать ссылку на комнатусначала спросить ник, потом входитьвосстанавливать ник и комнаты при заходе, например, с закладки... и чтобы при этом не тоормозиллоо

Ручной труд я страшно нелюблю, поэтому для интерфейса взял ExtJS (уже Sencha), jQuery для работы с XML и StropheJS для XMPP BOSH транспорта. Нечто подобное я использую и в своём рабочем проекте. Проект лежит в bzr-репозитории на Launchpad. Собственно практически весь код доступен через view page source и он довольно прост.

Состояние записывается в localStorage браузера (это типа кукисов, но намного мощнее), а для совсем танкованых браузеров (и для выдачи ссылок на комнаты) - в урл после #. Тоесть получается, что даже простой nginx должен это раздавать. XMPP BOSH требует проксирования урла чтобы браузер смог делать запросы к жабер-серверу, поэтому совсем на тупостатике на бесплатном хостинге выкатить пока не получится.

Изначально я сделал вебморду как надстройку над джанго-проектом для захода по ссылкам, восстановления состояния и всего такого. Но так и не использовал, обойдясь голым JS, пусть и современным. По-хорошему, надо отделить движок MUC, обшивку интерфейса (контейнер для комнаты) и серверный бэкенд. В принципе, можно на той же джанге сделать регистрацию и на её юзеров завязать внешнюю авторизацию жабер-сервера. Ну и там ещё фичи типа пре-бинд сессий и пр.

В будущем хотелось бы иметь embedded режим для встраивания в свои сайтики с автологином и автозаходом куда надо. Это не сложно, но надо делать. Как минимум - надо ещё доделать список присутствующих, но я уже уполз обратно в работу.

Если кто хочет поучаствовать или просто интересуется деталями - пишите. Патч - лучшая критика (;

upd: Открыл полноценный проект на https://launchpad.net/croom. Баги, вопросы и код можно кидать туда. Подписывайтесь на ленты.


Тэги: chat http javascript muc online web xmpp
+ 20 -
Похожие Поделиться

m0nhawk 28.06.2010 19:50 #
+ 0 -
Плюс :)
time2die 28.06.2010 20:16 #
+ 1 -
+1 но cut был бы не лишним
muhas 28.06.2010 20:51 #
+ 0 -
опять бош через прокси :(

жирный плюс за проект... в ближайшее время опробую в жизни
wiz 28.06.2010 21:16 #
+ 0 -
А что не так с бош прокси? В принципе в строфе есть через flash, но это имх совсем печально. Ждём вебсокетов и будет счастье.
muhas 28.06.2010 22:44 #
+ 0 -
не каждый хостинг умеет, эх как хорошо иметь свой сервак :)

забыл спросить, а как с запароленными конфами?
wiz 28.06.2010 23:02 #
+ 0 -
У строфы есть какие-то хитрые интерфейсы на этот случай, можно попробовать ими цепляться.

С запаролеными и закапчеными пока никак - patches welcome (: Ну или хотя бы ссылки на соответствующие XEP и JEP. Это не сложно, но надо делать.
muhas 29.06.2010 09:14 #
+ 0 -
http://xmpp.org/extensions/xep-0045.html
wiz 29.06.2010 09:20 #
+ 0 -
#enter-pw забыл (ж
andrew72ru 28.06.2010 21:33 #
+ 0 -
Эх блин, а я вот буквально пару месяцев назад свою написал… Причем с такими костылями, что аж самому не по себе.
Если коротко - то в конфе сидит бот, который пишет логи. Эти логи парсит php+javascript (jQuery), и выдает их в окошко пользователю.
Самый главный недостаток - это то, что я не разобрался (времени не было), как заставить скрипт надолго приконнектиться к серверу.
Собственно, происходит что. Webclient заходит в конфу, отправляет сообщение и отключается. Я вижу месадж в своей конфе, а пользователь - в браузере. Ну и я могу ему отвечать. Ну или бота можно насторожить так, чтобы говорил "извините, никого нет дома".
Проблема возникнет тогда, когда два человека одновременно зайдут.
Но такого еще не было. Да и не будет наверное - не те люди наши клиенты, чтобы так вот общаться с нами вот так вот. Они лучше позвонят и будут по телефону мозг выносить :D
cblp 28.06.2010 22:14 #
+ 3 -
Записано: jawiki.ru/Croom
alff31 29.06.2010 01:01 #
+ 0 -
А вот, скажем, есть форум phpbb, трудно ли сделать так, чтобы при входе в конференцию, брался логин с форума?
kstep 29.06.2010 01:38 #
+ 0 -
Думаю, что нет. Там обычная таблица юзеров с паролями в мд5, ЕМНИП.
Нужна только обвязка на пхп, как я понимаю, т.к. само приложение на чистом js.
alff31 29.06.2010 02:54 #
+ 0 -
О, вообще ничего писать не надо, как я понял. Поставить ссылку на форуме и каждому юзеру отдавать свой config.js с его логином.
wiz 29.06.2010 08:14 #
+ 0 -
Не совсем. Если только для чятиков, то да - в конфиг ник, а сам юзер анонимный.
Если хочется нормальных юзеров, то надо к жабер-серверу прикручивать внешнюю авторизацию, а в строфу передавать либо ключ авторизации либо авторизованую pre-bind сессию (так лучше).
alff31 29.06.2010 02:23 #
+ 0 -
Совсем ламерский вопрос. Как скачать весь ваш проект не имея bazaar? Или качать каждый файлик отдельно?
alff31 29.06.2010 04:12 #
+ 0 -
Установил bazaar (В дебиане/убунте aptitude install bzr). После этого выполняем
$ bzr branch https://code.launchpad.net/~wiz/+junk/croom
wiz 29.06.2010 08:14 #
+ 0 -
$ easy_install bzr
$ bzr branch lp:~wiz/+junk/croom
alff31 29.06.2010 04:03 #
+ 0 -
Раскажу, как я понял работу вебморды. python и django вообще не участвуют, лишь отдают юзеру index.html и скрипты. С набором скриптов браузер выступает в качестве клиента. Подключается к серверу, указанному в config.js.

Я не очень понял, как он подрубается к jabber серверу. При заходе на http://room.aenor.ru/#имя_комнаты, у меня был адрес аккаунта что-то вроде.
[email protected]/29484541361277764641617653
[email protected]/998514162127776505740466
[email protected]/28866583591277769001522538

Получается при каждом заходе ваш клиент регистрирует аккаунт? Можно ли осветить поподробнее настройки jabber-сервера?

И что можно сделать, если на хостинге не установлен jabber-сервер, можно ли использовать какой-нить внешний сервак, что-то вроде jabber.org или jabber.ru?
wiz 29.06.2010 08:15 #
+ 0 -
Это SASL Anonymous - одноразовые анонимные юзеры. В ростер их добавлять бесполезно, а для конференций там всё равно пишется ник.
wiz 29.06.2010 08:19 #
+ 0 -
Надо договориться с админами сервера чтобы они разрешили анонимные BOSH-подключения к ним и через реверс-прокси на них завернуть урл.

Для сайто-хостинга эта штука недоступна, минимум VPS надо.

Эти чятики больше для админов локалок - чтобы не городить ужасные поделия типа как выше описано.
alff31 30.06.2010 20:36 #
+ 0 -
А можно использовать один аккаунт? Что-то типа
[email protected]/user1
[email protected]/user2

Jabber же, вроде позволяет мульти-подключение. Или при этом будет пароль всем в настройках показываться? Мне бы веб-морду к конференции сделать на форуме, людей немного, человек 20 максимум. Форум на виртуальном хостинге.
wiz 30.06.2010 20:53 #
+ 0 -
В конференциях этот (анонимный) адрес не используется, там все пользователи вида [email protected]/nickname
alff31 30.06.2010 21:03 #
+ 0 -
Ну вот и я к тому же. То есть все подключаются к одному адресу [email protected], а потом заходят в конференцию с этого адреса под разными никами. Что надо сделать, чтобы по такому принципу работало? А то я сам как работает протокол xmpp не очень разбираюсь, и что за реверс прокси и BOSH не очень понимаю. И тема что-то не гуглиться, все на английском, трудновато дается. Можешь подсказать?
wiz 30.06.2010 21:07 #
+ 0 -
Можно, но зачем?
alff31 30.06.2010 21:10 #
+ 0 -
Ну хотя бы потому что у меня нет VPS и джаббер-сервера, а только виртуальный хостинг.
wiz 30.06.2010 21:30 #
+ 0 -
Я думаю тебе проще будет с нуля нарисовать простеньку морду для чятика, чем мне раскорячивать авторизацию под такой формат.

Про сервер без BOSH я пока не могу ничего конкретного сказать - пока не занимался плотно.
Abaza 29.06.2010 08:24 #
+ 0 -
Планируется показывать список пользователей в комнате?
wiz 29.06.2010 08:29 #
+ 1 -
Да, там оно их уже получает для таб-дополнения, но нигде не показывает.
Abaza 29.06.2010 08:38 #
+ 0 -
Ладно, перефразирую вопрос. Планируется ли показывать пользователю список пользователей? :)
wiz 29.06.2010 09:44 #
+ 0 -
Открыл полноценный проект на https://launchpad.net/croom. Баги, вопросы и код можно кидать туда. Подписывайтесь на ленты.
alff31 30.06.2010 21:32 #
+ 0 -
У вас в репозитории отсутствует файл media/stuff.js. Добавлен в исключения, почему-то.
wiz 30.06.2010 21:43 #
+ 0 -
Потому что его надо под свой сервер писать. Рыбу положу потом.
wiz 01.07.2010 09:33 #
+ 0 -
Посмотрел, он не используется вообще. Нужен тот, что в templates.
wiz 01.07.2010 10:22 #
+ 0 -
Замечательно работает на n900 :3

4750769791_34272b490f_z.jpg
wiz 06.10.2010 13:08 #
+ 0 -
В связи с нехваткой времени по всем фронтам, ап!

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

Алсо, добавлен специальный режим для встраивания в свои сайтики.
wiz 03.11.2010 22:00 #
+ 0 -
Основные баги пофикшены, фичи добавлены. Вполне юзабельно теперь.
wiz 22.02.2011 14:28 #
+ 0 -
Проект переехал на hg и, соотв-но, bitbucket: https://bitbucket.org/dpwiz/croom.

Заодно почистил от джанговского барахла.
wiz 20.07.2011 23:35 #
+ 1 -
Добавил поддержку ссылок через oembed. В чатике инлайнятся видео с ютубиков, твиты и прочая хрень с http://embed.ly/

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн