Programación de un cliente IRC (Internet-Relay-Chat) simple
Pregunta
Empecé a utilizar IRC a una edad temprana y siempre me ha fascinado.Como ejercicio de lenguaje, estaba pensando en programar un cliente IRC simple en Ruby con Zapatos como interfaz gráfica.Mi pregunta para ustedes, amables señores, ¿con qué necesito familiarizarme para comenzar esta gran aventura (además de los zapatos y Ruby, por supuesto)?Me imagino que hay algún tipo de especificación sobre el protocolo IRC.¿Algún consejo?
Solución
Una publicación anterior mencionó RFC1459.Si bien es una muy buena introducción a IRC, en realidad ha sido reemplazada por los RFC 2810-2813.Aquí hay una lista más completa de la documentación que necesita para programar cualquier cosa relacionada con IRC:
- RFC1459 (RFC original;reemplazado, pero sigue siendo útil)
- RFC2810 (arquitectura IRC)
- RFC2811 (Gestión de canales IRC)
- RFC2812 (Protocolo de cliente IRC)
- RFC2813 (Protocolo de servidor IRC)
- especificación CTCP
- especificación DCC
- Especificación CTCP actualizada (no todos los clientes admiten esto)
- Borrador de I Support (código de respuesta 005) (casi todos los servidores soportan esto hoy en día)
- Borrador de capacidades del cliente (comando CAP) (soportado por algunos servidores/clientes)
- Estándares y propuestas de IRCv3 (las características futuras de IRC, algunas de las cuales ya cuentan con un amplio soporte)
Otros consejos
La especificación IRC se establece en RFC 1459.
Encontré esta joya en Wikipedia.Suena intimidante.
En realidad no lo es.
Telnet a un servidor IRC y sea testigo de primera mano de la simplicidad del protocolo.La parte más difícil es el apretón de manos, después es muy sencillo.
Una vez implementé un cliente y un servidor con 2 personas más (como parte de un curso).
Puedo decirte que el RFC al que ya estabas vinculado es genial.
También intentaría simplemente rastrear una conexión con un cliente existente para ver por ti mismo cómo funcionan las cosas.
No es exactamente una respuesta a tu pregunta, pero puede resultar útil.Si estás usando Ruby, he descubierto que el proyecto Autumn Leaves es una excelente manera de construir un bot IRC usando Ruby:
http://github.com/RISCfuture/autumn/tree/master
Es prácticamente el Jibble del mundo Ruby.