|
 |
Путь: >
Новичкам
Новичкам
Автор: - Yurik
Дата публикации - 11.05.2005
Просмотров: - 4041
Общая информация о IRC
[p]Что такое IRC.[/p]
Это один из видов интернет-сервисов, который начал развиваться где-то с 1989 года, и берет своё начало из BBS. Дословно это Internet relay chat или "интернеттрансляционная беседа", или попросту чат. Также употребляется слово телеконференция.
Это текстовый протокол асинхронного он-лайн обмена сообщениями между IRC-клиентами через посредствие IRC-сервера.
Был описан стандарт протокола взаимодействия IRC-сервера и клиента: RFC1459 RFC2810 RFC2811 RFC2812 RFC2813. В последние годы появилось много альтернатив, например ICQ, Yahoo messenger, MSN, Odigo которые имеют тот же принцип работы но разную реализацию и функциональность. Важное отличие IRC протокола что он не принадлежит никакой организации и может быть использован повсеместно. Есть много реализаций как серверов так и клиентов, которые работают по протоколу IRC, также доступных как free-ware.
В самые последние годы появилось ещё одно ответвление IRC - веб-чаты. Появление достаточно мощного апаратного оборудования и языков высокого уровня, т.к. Perl, PHP, ASP, TCL и др. позволило создавать собственные чат-сервера через подключение по HTTP протоколу, который не требует наличия дополнительного програмного обеспечения на стороне клиента, поскольку работает через броузер. Но так как HTTP изначально не предназначался для решения задач такого класса, внедрение веб-чатов связано с многими проблемами:
- Большая загруженность каналов связи. Самые простые веб-чаты попросту перегружают HTML содержимое
- Передача данных осуществляется в формате HTML, а он несет в себе много пустой информации.
- HTTP протокол не предусматривает методов контроля за подключением клиента. В случае разрыва связи или сбоев по любой причине, сервер не в состоянии определить это.
The IRC (Internet Relay Chat) protocol is for use with text based
conferencing; the simplest client being any socket program capable of
connecting to the server.
This document defines the Client Protocol, and assumes that the
reader is familiar with the IRC Architecture [IRC-ARCH].
[p]Виды чатов[/p]
- IRC сервер + IRC клиент
- Собственный IRC сервер + собственный IRC клиент
- HTTP сервер с веб-скриптами + веб-броузер с постоянным соединением
- HTTP сервер с веб-скриптами + веб-броузер с перегрузкой страниц
- IRC сервер - HTTP сервер + веб-броузер
- HTTP и серверные скрипты + веб-броузер
- HTTP и серверные скрипты + JAVA-applet в веб-броузере
- HTTP и серверные скрипты + Flash в веб-броузере
- HTTP и серверные скрипты + веб-броузер с Remote Scripting
Выше приведены возможные на сегодня решения создания чатов. Каждый вариант имеет свои преимущества и недостатки.
Первый вариант является наиболее "правильным", исключительно быстрым и проверенным годами. Вам нужно установить IRC сервер (например ...) или использовать существующий. Каждый клиент должен установить у себя совместимый с IRC протоколом IRC-клиент. Хорошо зарекомендовал себя mIRC клиент. Недостатком является необходимость установки дополнительного программного обеспечения и наличия базовых навыков работы с IRC-клиентом. Большинство пользователей прокси-серверов не смогут пользоваться IRC-чатом, т.к. прокси-сервера как правило поддерживают соединение только по http:// и https:// т.е. по
Второй вариант имеет те же преимущества что и первый. Только написание собственного IRC протокола и соответствующего сервера и клиента будет "изобретением велосипеда" который маловероятно станет лучше проверенного тысячами людей десятилетием IRC-протокола и существующего софта.
Третий вариант достаточно легко реализуется на уровне веб-скриптинга (CGI или SAPI), но является очень неправильным, т.к. крайне неефктивен. Так как на каждое соединение создаётся отдельный процесс рано или поздно, сервер "сожрёт" всю доступную память и загрузит процессор (Например если каждое соединение к Апачу требует 3Мб, то на 50 клиентов нужно 150Мб RAM. На IRC сервере для этого будет достаточно несколько мегабайт памяти).
Четвертый вариант очень легко реализуется на уровне веб-скриптинга, но намного хуже предыдущего. Через определенные промежутки времени () броузер перегружает содержимое страницы. Очень сильно загружает сервер и, особенно, каналы связи
Пятый вариант есть ещё хуже предыдущего т.к. кроме присущих ему недостатков требует ещё и наличия IRC сервера. Веб-скрипт является посредником между IRC-сервером и броузером, преобразуя данные с IRC-протокола в HTTP+HTML и обратно.
Шестой вариант является очень распространенным т.к. является почти таким же ефективным как второй, но не требует специального IRC-клиента т.к. работает на броузер. Т.к. HTTP протокол и HTML не очень подходят для чат-программ, правильный чат обычно содержит дополнительно клиентский javascript. Его задача создать удобный пользовательский интерфейс и поддерживать открытым соединение. При отсуствии новых сообщений он должен как-то сообщать серверу, что клиент ещё в сети.
Седьмой вариант есть модификацией последнего. Он базируется на использовании JAVA апплетов вместо стандартного HTML+JS. Это позволяет создать более ефективный интерфейс и уменьшить нагрузку на сеть. Практически это вариант может быть идентичен второму, если рассматривать java-апплет как самостоятельное программное обеспечение. Преимуществом является более высокая доступность java-броузеров (почти все) чем устанавливаемых IRC-клиентов. Возможно даже написание java-апплета к оригиальному IRC серверу.
Восьмой вариант есть модификацией предыдущего. Вместо java-апплетов используется Flash приложение которое может делать практически все что делает java и доступно на большинстве броузеров. Преимущество - более низкие требования к программисту и большая скорость разработки чем в случае java-апплетов.
Последний вариант есть модификацией пятого (возможно и шестого?) только вместо перезагрузки страницы клиентский скрипт периодически открывает фоновый прокси-процесс и если приходит новое содержимое, помещает его на страницу через DHTML. Преимуществом перед пятым вариантом есть значительно меньшая нагрузка на сеть. Недостаток - небольшое количество броузеров поддерживает клиентские HTTP-Requests и поддержка DHTML также нестабильна.
To be continued....
Обсудить в ФОРУМе - комментариев ()
Путь: >
Новичкам
Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
|
|