У меня как раз ситуация из 2го абзаца. Я уже знаком с ерлангом и даже модифицировал кое-какие модули ejabberdа. Но при этом нормальной программы с нуля написать не смогу, потому что не изучил основ, подобных описанным в статье. Поэтому для меня она и полезна :)
Суть http-bind в том, что не нужно держать постоянное соединение — достаточно хранить сессию и можно работать с сервером через http-запросы. Хранить нужно следующее:
* sid — идентификатор сессии
* rid — номер пакета (используется для проверки, что ничего не пропало по пути)
* key — для защищённых соединений специальное число, защищающее от вклинивания в сессию посторонних
Чтобы реализовать самому нужно пройти сюда: xmpp.org/extensions/xep-0124.html
И обратить внимание на секции 6, 7, 14, 15(.3). Для лучшего понимания лучше поставить себе JWChat или что-то подобное + firebug чтобы смотреть отправляемые/принимаемые пакеты. За несколько часов реально разобраться и набросать свою библиотеку, которую можно будет использовать для отправки разных уведомлений.
Общие чаты (которые созданы не через формочку «создать чат» на главной странице) пока немодерируемы. Скоро добавим возможность выбора модераторов и предоставление прав модераторов обсуждаемым сайтам (т.е. в данном случае вам). Уже недолго осталось.
В случае с сайтом лучше использовать http-bind, т.к. можно хранить сессию и не логиниться каждый раз на сервер. Вероятно, мы скоро выложим библиотечку, которую можно будет использовать для этих целей (мы её сейчас используем на chat.ru)
Пример:
* человек может нажать F5 в попытке обновить страницу под чатом, не догадываясь, что таким образом он выйдет из чата
* на сайте под чатом может стоят base = _top и переход по любой ссылку будет выбрасывать из чата
* человек может просто случайно попытаться закрыть вкладку, а перезаход в чат — это не то же самое, что перезаход на обычную страницу.
Сделаем опцию, чтобы можно было отключать тем, кого раздражает. Но вообще это не бесполезная вещь.
На xmpp-серверах работает куда больше чатов в мире, чем на написанном umputunом веб-чате без использования XML. И ничего у них не ложится. И всё работает.
Про интеграцию и расширямость даже говорить нечего.
Проблема в том, некоторые страницы кроме адреса имеют ещё различные параметры (часто достаточно длинные). И что с ними делать в общем случае неясно. Возможно, для нормальных страниц мы будем делать человекопонятные адреса комнат. Там видно будет.
Для чатов внутренних страниц мы будем выводить адрес комнаты (он не слишком читабельный — случайный набор символов).
Для чатов главных страниц адрес комнаты совпадает с урлом (например, habrahabr.ru@chat.ru). К сожалению, в ближайшие пару дней не получится приконнектиться к этим чатам через клиент, не имея аккаунта на chat.ru.
Возможно был медленный коннект и вас начало редиректить на главную, но не закончило. Попробуйте войти под ником и паролем. Если не выйдет — скажите ник — разберёмся.
Для комнат доменов (т.е. вроде chat.ru/bash.org.ru или chat.ru/habrahabr.ru) имя комнаты равно домену, т.е. habrahabr.ru@conference.chat.ru.
Для комнат страниц имя генерируется случайным образом — уже скоро мы добавим возможность увидеть это имя из чата и подключиться клиентом.
* sid — идентификатор сессии
* rid — номер пакета (используется для проверки, что ничего не пропало по пути)
* key — для защищённых соединений специальное число, защищающее от вклинивания в сессию посторонних
Чтобы реализовать самому нужно пройти сюда: xmpp.org/extensions/xep-0124.html
И обратить внимание на секции 6, 7, 14, 15(.3). Для лучшего понимания лучше поставить себе JWChat или что-то подобное + firebug чтобы смотреть отправляемые/принимаемые пакеты. За несколько часов реально разобраться и набросать свою библиотеку, которую можно будет использовать для отправки разных уведомлений.
* человек может нажать F5 в попытке обновить страницу под чатом, не догадываясь, что таким образом он выйдет из чата
* на сайте под чатом может стоят base = _top и переход по любой ссылку будет выбрасывать из чата
* человек может просто случайно попытаться закрыть вкладку, а перезаход в чат — это не то же самое, что перезаход на обычную страницу.
Сделаем опцию, чтобы можно было отключать тем, кого раздражает. Но вообще это не бесполезная вещь.
Про интеграцию и расширямость даже говорить нечего.
Для чатов главных страниц адрес комнаты совпадает с урлом (например, habrahabr.ru@chat.ru). К сожалению, в ближайшие пару дней не получится приконнектиться к этим чатам через клиент, не имея аккаунта на chat.ru.