Программирование простого клиента IRC (Internet-Relay-Chat)

Я начал использовать IRC в молодом возрасте и всегда был очарован им. В качестве языкового упражнения я думал о программировании простого IRC-клиента на Ruby с обувь в качестве графического интерфейса. Мой вопрос к вам, милостивые господа, с чем мне нужно познакомиться, чтобы начать это великое приключение (кроме обуви и, конечно же, Руби)? Я полагаю, что есть какая-то спецификация протокола IRC. Есть указатели?

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
10
0
10 699
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Спецификация IRC изложена в RFC 1459.

http://www.irchelp.org/irchelp/rfc/rfc.html

I found this gem on Wikipedia. Sounds intimidating.

На самом деле это не так.

Подключитесь по Telnet к IRC-серверу и убедитесь в простоте протокола из первых рук. Самая сложная часть - это рукопожатие, после этого все очень просто.

+1 - Я общался в IRC через telnet (только для фанатов)

Blorgbeard 10.04.2009 17:19

Однажды я реализовал клиент и сервер с еще двумя ребятами (как часть курса) .
Могу сказать вам, что RFC, на который вы уже ссылались, великолепен. Я бы также попробовал просто понюхать соединение с существующим клиентом, чтобы лично увидеть, как все работает.

Не совсем ответ на ваш вопрос, но он может быть полезен. Если вы используете Ruby, я обнаружил, что проект Autumn Leaves - отличный способ создать IRC-бота с использованием Ruby:

http://github.com/RISCfuture/autumn/tree/master

Это в значительной степени Jibble мира Ruby.

Ответ принят как подходящий

В более ранней публикации упоминался RFC1459. Хотя это очень хорошее введение в IRC, его фактически заменили RFC 2810-2813. Вот более полный список документации, необходимой для программирования всего, что связано с IRC:

Обратите внимание, что RFC2810-RFC2813 написаны только моей IRCnet (после большого раскола). IRCnet - единственная крупная сеть, поддерживающая каналы !. 005 разобрать и понять каждый токен ... сложно. Различные сети поддерживают другие режимы каналов (например, q, a и h как владелец, администратор и полуоп)

Johannes Kuhn 26.09.2013 13:44

На самом деле разбор 005 не такой уж и сложный. Новые токены добавляются не часто (тем более в будущем, когда IRCv3 будет принят), а анализ текущих довольно прост: github.com/cinchrb/cinch/blob/master/lib/cinch/isupport.rb

Hinrik 25.11.2013 15:04

Вы не разбираете все токены. Вы просто разбираете несколько токенов, но не все.

Johannes Kuhn 25.11.2013 16:37

Например. вы не ищите токены CNOTICE или CPRIVMSG.

Johannes Kuhn 25.11.2013 16:39

Если вы присмотритесь, вы увидите, что код там имеет только особые случаи для нескольких токенов и предполагает, что все остальные токены являются логическими (например, CNOTICE или CPRIVMSG) или строковыми значениями, если они содержат '=' (например, SOMETHING=foobar). Таким образом, он поддерживает любые будущие токены этих типов. Фактически, любой специальный анализ сложных значений токенов (например, значения в CHANMODES=b,k,l,imnpstr) существует только для удобства. В том маловероятном случае, если будет добавлен новый тип токена, подобный этому, и библиотека еще не проанализирует его специально, пользователь все равно сможет получить доступ к значению в виде строки.

Hinrik 25.11.2013 22:00

Другие вопросы по теме