Я начал использовать IRC в молодом возрасте, и я всегда был в восторге от этого. В качестве языкового упражнения я думал о программировании простого IRC-клиента в Ruby с Shoes в качестве графического интерфейса. Мой вопрос к вам, добрые господа, что мне нужно, чтобы начать знакомство с этим великим приключением (помимо обуви и Ruby, конечно)? Я полагаю, что есть некоторая спецификация протокола IRC. Любые указатели?
Программирование простого клиента IRC (Internet-Relay-Chat)
Ответ 1
Ранее упоминалось RFC1459. Хотя это очень хорошее введение в IRC, оно фактически было заменено RFC 2810-2813. Ниже приведен более полный список документации, необходимой для программирования любых связанных с IRC:
- RFC1459 (исходный RFC; заменен, но по-прежнему полезен)
- RFC2810 (архитектура IRC)
- RFC2811 (управление каналом IRC)
- RFC2812 (протокол клиента IRC)
- RFC2813 (протокол сервера IRC)
- спецификация CTCP
- DCC-спецификация
- Обновлена спецификация CTCP (не все клиенты поддерживают это)
- Проект ISupport (код ответа 005) (почти все серверы поддерживают это в настоящее время)
- Проект клиентских возможностей (команда CAP) (поддерживается некоторыми серверами/клиентами)
- стандарты и предложения IRCv3 (будущие возможности IRC, некоторые из которых уже широко поддерживаются)
Ответ 2
Спецификация IRC изложена в RFC 1459
Ответ 3
Я нашел этот камень в Википедии. Звучит пугающе.
На самом деле это не так.
Telnet на IRC-сервер и убедитесь в простоте протокола из первых рук. Самая сложная часть - рукопожатие, после чего это очень просто.
Ответ 4
Я однажды реализовал клиент и сервер с еще двумя парнями (как часть курса).
Я могу сказать вам, что RFC, с которым вы уже были связаны, отличная.
Я также попробую просто обнюхивать соединение с существующим клиентом, чтобы убедиться, что все работает.
Ответ 5
Не совсем ответ на ваш вопрос, но это может быть полезно. Если вы используете Ruby, я нашел проект Autumn Leaves отличным способом создания IRC-бота с помощью Ruby:
http://github.com/RISCfuture/autumn/tree/master
Это в значительной степени Jibble мира Ruby.