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