J'ai commencé à utiliser l'IRC à un jeune âge, et cela m'a toujours fasciné. En tant qu'exercice de langage, je pensais à programmer un simple client IRC dans Ruby avec Shoes comme frontal graphique. Ma question pour vous, messieurs, de quoi ai-je besoin pour me familiariser avec cette belle aventure (en plus des chaussures et de Ruby bien sûr)? J'imagine qu'il y a une sorte de spécification sur le protocole IRC. Des pointeurs?Programmation d'un simple client IRC (Internet-Relay-Chat)
Répondre
Une publication antérieure mentionnée RFC1459. Bien qu'il s'agisse d'une très bonne introduction à l'IRC, il a été remplacé par les RFC 2810-2813. Voici une liste plus complète des documents dont vous avez besoin de programmer quoi que ce soit-lié IRC:
- RFC1459 (RFC d'origine, supplanté, mais toujours utile)
- RFC2810 (architecture IRC)
- RFC2811 (gestion des canaux IRC) RFC2812
- (protocole client IRC)
- RFC2813 (protocole du serveur IRC)
- CTCP specification
- DCC specification
- Updated CTCP specification (tous les clients prennent en charge cette)
- ISupport (response code 005) draft (presque tous les serveurs prennent en charge ce de nos jours)
- Client capabilities (CAP command) draft (pris en charge par certains serveurs/clients)
- IRCv3 standards and proposals (les futures caractéristiques de l'IRC, certains d'entre eux sont déjà largement pris en charge)
La spécification IRC est définie dans la RFC 1459
J'ai trouvé ce petit bijou sur Wikipedia. Cela semble intimidant.
En réalité, ce n'est pas le cas. Telnet sur un serveur IRC et voyez la simplicité du protocole de première main. La partie la plus difficile est la poignée de main, après cela est très simple.
+1 Telnet et essayez-le d'abord manuellement! –
+1 - J'ai discuté sur IRC via telnet (uniquement pour les points geek) – Blorgbeard
Une fois, j'ai mis en place un client et un serveur avec 2 autres gars (dans le cadre d'un cours).
Je peux vous dire que le RFC auquel vous étiez déjà connecté est génial.
J'essaierais aussi simplement de renifler une connexion avec un client existant pour voir par vous-même comment fonctionnent les choses.
Pas exactement une réponse à votre question, mais cela peut être utile. Si vous utilisez Ruby, j'ai trouvé le projet Feuilles d'automne pour être un excellent moyen de construire un bot IRC en utilisant Ruby:
http://github.com/RISCfuture/autumn/tree/master
Il est à peu près le Jibble du monde Ruby.
Notez que les RFC2810-RFC2813 sont écrites sur mon IRCnet seul (après la grande division). IRCnet est essentiellement le seul réseau majeur qui supporte les canaux '!'. 005 l'analyse et la compréhension de chaque jeton est .. difficile. Différents réseaux prennent en charge d'autres modes de canal (comme 'q',' a' et 'h' en tant que propriétaire, administrateur et halfop) –
' 005' analyse n'est pas si compliqué, en fait. Les nouveaux jetons ne sont pas ajoutés souvent (encore moins à l'avenir maintenant que l'IRCv3 est adopté), et l'analyse des jetons actuels est plutôt simple: https://github.com/cinchrb/cinch/blob/master/lib/cinch/isupport .rb – Hinrik
Vous n'analysez pas tous les jetons. Vous venez d'analyser une poignée de jetons, mais pas tous. –