Programando um cliente IRC (Internet-Relay-Chat) simples
Pergunta
Comecei a usar o IRC ainda jovem e sempre fui fascinado por ele.Como exercício de linguagem, estava pensando em programar um cliente IRC simples em Ruby com Sapato como um front-end gráfico.Minha pergunta para vocês, gentis senhores, com o que preciso me familiarizar para iniciar esta grande aventura (além dos sapatos e do Ruby, é claro)?Imagino que exista algum tipo de especificação no protocolo IRC.Alguma indicação?
Solução
Uma postagem anterior mencionou RFC1459.Embora seja uma introdução muito boa ao IRC, na verdade foi substituído pelos RFCs 2810-2813.Aqui está uma lista mais completa da documentação necessária para programar qualquer coisa relacionada ao IRC:
- RFC1459 (RFC original;substituído, mas ainda útil)
- RFC2810 (Arquitetura IRC)
- RFC2811 (Gerenciamento de canal IRC)
- RFC2812 (protocolo cliente IRC)
- RFC2813 (protocolo de servidor IRC)
- Especificação CTCP
- Especificação DCC
- Especificação CTCP atualizada (nem todos os clientes suportam isso)
- Rascunho do ISuport (código de resposta 005) (quase todos os servidores suportam isso hoje em dia)
- Rascunho de recursos do cliente (comando CAP) (suportado por alguns servidores/clientes)
- Padrões e propostas IRCv3 (os recursos futuros do IRC, alguns dos quais já são amplamente suportados)
Outras dicas
A especificação IRC está definida na RFC 1459
Encontrei esta joia na Wikipedia.Parece intimidante.
Na verdade não é.
Telnet em um servidor IRC e testemunhe a simplicidade do protocolo em primeira mão.A parte mais difícil é o aperto de mão, depois é muito simples.
Certa vez, implementei um cliente e um servidor com mais 2 caras (como parte de um curso).
Posso dizer que a RFC à qual você já estava vinculado é ótima.
Eu também tentaria simplesmente detectar uma conexão com um cliente existente para ver por si mesmo como as coisas funcionam.
Não é exatamente uma resposta à sua pergunta, mas pode ser útil.Se você estiver usando Ruby, descobri que o projeto Autumn Leaves é uma ótima maneira de construir um bot de IRC usando Ruby:
http://github.com/RISCfuture/autumn/tree/master
É praticamente o Jibble do mundo Ruby.