среда, 21 февраля 2007 г.

WebIRC?

К сожалению, webirc.blogspot был уже занят, поэтому пришлось придумывать дополнительные буковки для названия блога.

Итак, о чем этот блог?
Блог посвящен WebIRC - веб клиенту IRC. На самом деле, разнообразных клиентов для IRC уже наплодилось очень много, и веб клиенты - не исключение. Веб клиенты можно разделить на несколько типов:
  • Java апплет
  • Flash
  • и написанные на обычном HTML(DHTML)
С первыми двумя все понятно - используют дополнительные плагины для веб браузеров, но зато не нуждается в серверной части. А третий тип не нуждается в дополнительных плагинах на стороне клиента, и может быть запущен на практически на любом браузере. Третий тип обычно исполнен так - серверная часть, написанная на PHP, CGI-BIN (или на чем-нибудь другом), в которой происходит вся обработка IRC команд и очень тонкий веб клиент. Пока что, я встретил два таких клиента: первый - CGI:IRC, а второй... а второму автор пока не дал название и не выложил в общее пользование. :)
CGI:IRC - это достаточно простой клиент, использующий технологию COMET для получения данных от сервера.
Второй клиент - гораздо красивее CGI:IRC, но пока сырой, версию, которую выложил автор я даже не смог нормально запустить. (На Опере он вообще отказался стартовать).

WebIRC - это практически JavaScript клиент, написанный с использованием Google Web Toolkit. Вся-вся обработка IRC команд осуществляется на стороне клиента, то есть, в веб браузере пользователя. А "практически "- только потому, что JavaScript, который испоняется в браузере, подключаться к IRC самостоятельно не умеет. :) Поэтому есть серверная часть, которая очень небольших размеров, и теоретически :) требует очень небольших ресурсов (просто в реальных условиях еще не проверялось). Серверная часть используется, как звено между веб клиентом и IRC сервером. То есть, осуществляет подсоединение к IRC, складирует сообщения пришедшие от IRC сервера (сообщения передаются веб клиенту, когда тот производит синхронизацию) и отправляет сообщения от веб клиента. Пока, серверная часть написана на Java и может быть использована в любом контейнере сервлетов (например, Apache Tomcat), но можно очень легко сделать серверную часть на любой другой технологии, типа PHP, .NET или CGI-BIN.

Список фич, которые уже реализованы:
  1. Смайлы. :) Описание смайлов хранится в xml файле, поэтому можно очень легко добавлять новые или изменять существующие смайлы. Сам смайл описывается RegExp маской.
  2. Алиасы. Тоже хранятся в xml файле. Пока есть всего несколько алиасов. (/msg, /me, /slap...)
  3. Звуки. Пока есть два звука - после загрузки WebIRC и при получении приватного сообщения.
  4. Цвета и стили текста(жирный, наклонный...). Пока только в одну сторону, то есть, цвета отображаются в сообщениях пришедших от других клиентов. В WebIRC можно будет "украшать" сообщения в скором будущем. :)
  5. Поддержка CTCP команд.
  6. Возможность легко делать скины и встраивать WebIRC в уже готовый сайт.
  7. Может еще что-то, про что я забыл. :)

Я стараюсь делать WebIRC достаточно простым клиентом, чтобы обычные пользователи, никогда не видевшие IRC, могли спокойно чатиться.

WebIRC будет opensource, поэтому скоро я выложу исходники на code.google.com.

Посмотреть на WebIRC можно по этой ссылке. А вот тут можно увидеть другой, более простой скин.