単純な IRC (インターネット リレー チャット) クライアントのプログラミング
質問
私は幼い頃から IRC を使い始めて、常にそれに魅了されてきました。言語の練習として、Ruby で単純な IRC クライアントをプログラミングすることを考えていました。 靴 グラフィカルフロントエンドとして。先生、私からの質問ですが、この素晴らしい冒険を始めるには何を知っておく必要がありますか(もちろん靴とルビー以外に)?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 サーバーに接続し、プロトコルの単純さを直接体験してください。最も難しいのは握手ですが、その後は非常に簡単です。
私はかつて、(コースの一環として)あと 2 人でクライアントとサーバーを実装しました。
すでにリンクされている RFC は素晴らしいものであると言えます。
また、既存のクライアントとの接続を単純に盗聴して、どのように動作するかを自分の目で確認してみます。
あなたの質問に対する正確な答えではありませんが、役立つかもしれません。Ruby を使用している場合は、Autumn Leaves プロジェクトが Ruby を使用して IRC ボットを構築する優れた方法であることがわかりました。
http://github.com/RISCfuture/autumn/tree/master
これはまさに Ruby 世界のジブルです。