Видео ролики бесплатно онлайн

Смотреть зрелые видео

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

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

28.06.10 19:31 wiz

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

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

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


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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

Заодно почистил от джанговского барахла.

Лучшие блоги (все 158)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 3233 из 234 городов)
Топ пользователей Топ блогов
welinux.ru

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

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


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

Online video HD

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

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

Full HD video online

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

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

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