На главную : Статьи : Форум : Блог : Связаться с автором

iRCha — гейт между IRC и Intranet Chat

Споры между поклонниками чатов — одни из самых яростных в жизни домашней сети. Каждый пользователь имеет своё видение того, каким должен быть идеальный чат, и вряд ли сдастя без боя. В ход идут множество совершенно разнообразных аргументов и методик убеждения; чья точка зрения перевесит — зависит от разных факторов, как то: техническая грамотность пользователей, их привычки, техническая грамотность администраторов сети, волевые качества и агрессивность как пользователей, так и администраторов.

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

Прошло какое-то время, и стало совершенно очевидно, что находиться одновременно в двух чатах по меньшей мере неудобно. После ознакомления с существующими «наработками» было принято решение о создании самостоятельного гейта, результат развития которого и представляется вашему вниманию.

Принцип действия

На данный момент гейт работает в режиме бот-бот. Идея проста — к IRC и ичат сетям подключается клиентское приложение, имитирующее пользовательское подключение, единственной целью которого является трансляция сообщений из одной сети в другую и предоставление дополнительной информации о работе сервиса. У этого метода межсетевой связи есть естественные ограничения: сообщения исходят от одного физического клиента, информация о пользователе, написавшем сообщение, добавляется непосредственно в тело сообщения, что несколько затрудняет чтение. Впрочем, по прошествии некоторого времени имя бота начинает восприниматься как «префикс» и полностью игнорируется, особых неудобств пользователям, как показывает практика, этот аспект не доставляет. Более существенным недостатком является отсутствие пользователей «другой» сети в списках пользователей «текущей». В этом гейте эта проблема решена с помощью искусственных методов: так, бот в ирк реагирует на специфические команды и передает список пользователей «другой» сети в личных сообщениях; в ичате же создается «виртуальная» линия с чисто номинальным паролем, единственная цель которой — отображение пользователей, присутствующих в данный момент на канале ирк-сети, на котором размещен бот. В будущем планируется создать полностью «прозрачный» гейт, но в связи с масштабностью проекта автор никаких гарантий относительно времени реализации дать не может.

Установка и запуск

Для функционирования гейта необходимо установить jre (java runtime environment) версии 1.5 и выше. Скачать последнюю версию jre можно здесь. После установки jre распакуйте содержимое архива с гейтом в удобный для вас каталог и отредактируйте конфигурационный файл config.xml в соответствии с настройками вашей сети. Будьте внимательны, заполняя поле SenderIp — некоторые реализации ичат-серверов следят за совпадением указанного ip адреса и реального ip адреса клиентского подключения. Таким образом при несовпадении этих адресов такой сервер может разорвать соединение или, чего хуже, полностью его заблокировать. В остальном же конфигурационный файл снабжен комментариями, призваными оказать вам некоторую помощь в настройке. Также если вас не устраивает содержимое файлов помощи и сообщения, которое будет размещено в ичате от имени гейта, вы всегда можете исправить файлы help.txt и board.txt соответсвенно. Для запуска гейта необходимо запустить из каталога с распакованным архивом следующую команду:

java -jar irCha.jar

Использование

После успешного запуска (следите за сообщениями в консоли или же в лог-файлах в папке log) гейт создает два клиентских подключения — по одному в каждой сети. Имена ботов указаны в конфигурационном файле (следите чтобы имена соответствовали соглашениям, используемым в вашей сети). После подключения бот немедленно начинает транслировать сообщения из одной сети в другую. Сообщения о подключениях/отключениях пользователей, смен имен пользователей транслируются в ирк-сеть другим цветом для облегчения читаемости и отслеживаемости списка пользователей. Отсутствие этих сообщений привело бы к тому что вы не смогли бы своевременно узнать о смене пользователем имени или же выходе пользователя — вам пришлось бы каждый раз использовать команду получения текущего списка пользователей, что было бы довольно неудобно.

Любое сообщение, набранное на канале, на котором присутствует бот гейта, немедленно отправляется в сеть ичата. Сообщение, начинающееся с символа * (звёздочка) является синонимом «массового» сообщения в ичате.

В ирк доступны так же следующие команды:

!users - получение списка пользователей ичата
!list - «сокращённый» список пользователей (имена пользователей выводятся по нескольку имён в строке, без дополнительной информации)
!help - справка

Гейт поддерживает отправку личных сообщений пользователям «другой» сети. Для этого:

  • в ирк: отправьте личным сообщением боту следующее: "имя пользователя" сообщение. Обратите внимение, что имя пользователя должно быть заключено в кавычки, так как пробел является допустимым в имени пользователя ичата
  • в ичате: отправьте личным сообщением боту следующее: "имя пользователя" сообщение. Например, сообщение может выглядеть следующим образом: /msg "lsd.irc.by" "jedi" Привет, как дела?
    где lsd.irc.by — это имя бота в сети ичата

Надеюсь, что данный гейт вам пригодится в нелегком деле объединения привередливых пользователей. Успехов!

iRCha : обсудить на форуме : javadoc
© 2006 — Авторство и copyright на все материалы — Константин Батурицкий
На главную : Статьи : Форум : Блог : Связаться с автором