Новости

Обновление исправляет совместимость с Freenode после обновления этой сетью версии IRCd.

Вышел второй релиз-кандидат KVIrc 4.0

Ричард Столлман дал автограф проекту и пожелал успеха в разработке.

Image:Feed.png RSS
Главная страница >

MediaServ - передача медиа-данных через IRC

Материал из IRC клиент KVIrc.

Перейти к: навигация, поиск

«О чем это мы? MediaServ какой-то… Да зачем это вообще нужно?» - спросите вы. Попытаюсь донести до вас это понятным языком. (Обсуждение этой темы)

Содержание

[править] Задачи

Сейчас ярким недостатком IRC является невозможность передачи никакой информации друг другу стандартными средствами, кроме реального имени. Много лет назад этого было достаточно, но время идет, а IRC остается на месте. Мы предлагаем идею реализации принципиально новой технологии, не имеющей пока аналогов ни в отечественном, ни в мировом IRC пространстве. Звучит гордо. Но посмотрим, стоит ли оно этого фактически.

Смысл в двух словах прост как дважды два: пользователь устанавливает информацию о себе, а другие ее видят. «И что тут революционного?» - будет справедливая реплика читателя. А революционен способ реализации этого. Получение любого количества информации о собеседнике, включая его аватар и фотографии, должно проходить автоматически и координироваться сервисами, а не CTCP/DCC соединениями.

[править] Как это будет работать

[править] Предоставлении информации о себе

При идентификации на сервисах (в частности NickServ) зарегистрированному пользователю будет выдаваться некоторый временный (сессионный) ключ доступа к сервису загрузки информации о себе. IRC-клиент, поддерживающий эти возможности, автоматически будет подключаться к HTTP-сервису, расположенному физически на том же сервере что и IRC-сервер (это уменьшит межсетевой траффик для пользователей локальных IRC-серверов) и при помощи GET/POST-запросов протокола HTTP отправит (обновит) информацию о пользователе.

Далее эта информация автоматически (а точнее, при возникновении в ней необходимости на других серверах) будет ретранслирована на "центральный сервер" в сети (тот, к которому подключены сервисы) и станет доступна другим пользователям.

Теоретически может быть загружена любая информация (визитная карточка, фотография и т.п.).

[править] Получение информации о других

При подключении клиента IRC-сервер декларирует о поддержке MediaServ (фактически об этом будет свидетельствовать наличие этого сервиса он-лайн или специальный ответ IRC-сервера), и IRC клиент, видя это, получает от MediaServ адрес HTTP-сервиса (который, как говорилось выше, совпадает с физическим адресом IRC-сервера, но это требование необязательно и служит для равномерного распределения нагрузки и уменьшения траффика) и подключается к HTTP сервису и запрашивает с него данные. Если же на конкретном IRC-сервере нет такого HTTP-сервиса, MediaServ может выдать ссылку на другие доступные HTTP-сервисы или ссылку на HTTP-сервис "центрального сервера".

Опуская технические подробности, диалог может выглядеть примерно так:

GET (или POST) запрос к HTTP-сервису: дай мне информацию о пользователях с никами USER1,USER2,USER3 и т.д. (перечисление всех интересующих пользователей).

Ответ сервиса: у USER1 имеется аватар avatar1.jpg 20кб, дата последнего изменения такая-то, MD5 такое-то, и есть визитка, у USER2 только визитка, у USER3 нет ничего. Эти данные сервис получит, обратившись к централизованной сетевой базе данных, которая будет расположена на центральном сервере и будет интегрирована с базой данных пользователей сервисов. Далее, из полученной информации, IRC-клиент может выбрать какие именно данные он хочет скачать. Например, он хочет получит файл avatar1.jpg. Первым делом он смотрит, нет ли этого файла в его кэше (не скачивал ли он его ранее) и сверяет время последнего обновления этого файла с временем, которое вернул сервер. Если такого аватара нет в кэше или он уже устарел то отправляет запрос HTTP сервису, мол «дай-ка мне этот файлик».

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

[править] Для пользователей mIRC

Мы вполне оправдано сомневаемся в том, что разработчики mIRC (и других клиентов) добавят поддержку этой технологии. Но это не может остановить развитие проекта. На том же локальном HTTP будет присутствовать веб-интерфейс, который можно будет использовать подобно тому, как это происходит при просмотре профилей пользователей на форумах. Например, авторизация будет прозводится путём использования зарегистрированых на NickServ ника и пароля. Затем можно произвести модификацию собственной анкеты или, например, просмотреть анкеты пользователей определенного канала.

В той или иной форме подобные сервисы уже существуют: есть боты, составляющие списки пользователей сети, есть общесетевые или канальные сайты с галереями пользователей. Мы лишь предлагаем единый, удобный и тесно интегрированный как с сервисами, так и с IRC-клиентами способ.

[править] Требования к сети и серверам

Введение ограничений на размер файлов, позволит хранить графическую информацию на сервере не занимая много места. Флуд-контроль должен ограждать HTTP-сервис от некорректного использования и его избыточной нагрузки. В части интеграции в сети революционность технологии в том, что она практически не требует модификации IRCD т.к. все данные и сервисы работают самостоятельно, лишь синхронизируясь с сетью.

В таком случае нужна минимальная модификация центрального сервера и сервисов. Причем, если какие-либо сервера сети по тем или иным причинам откажутся от установки HTTP сервиса, это никак не повлияет на работу сети в целом. Модификации настолько минимальны, что позволяют выполнить их как небольшие патчи или модули для ircservices и ircd-ru или Unreal и Anope.

Для функционирования веб-сервиса потребуется лишь работающий HTTP сервер с возможностью входящих подключений. В подавляюще большинстве случаев HTTP сервер и так присутствует на IRC-серверах.

[править] Сети, готовые принять этот сервис

На данный момент свою поддержку выразила сеть SolarNet. Если вы хотите присоединиться, вы всегда можете это сделать на форуме. Узнать технические подробности можно узнать там же.

[править] Советуем посетить

Получение знаний - спросить или прочитать

IRC в русском интернете: признак цивилизации или дикости?

Vypress Chat посвящается

История IRC. С чего всё начиналось...

Личные инструменты
Инструменты
Наши кнопки
Размести кнопку KVirc у себя на сайте:
www.kvirc.ru - кроссплатформенный IRC клиент с богатым графическим интерфейсом и внутренним языком скриптинга
Друзья и спонсоры
  • Fireforge.net
Linux coutner