Home > PHP | Program > [ PHP ] IRC Gatewayでも作ってみようか(調査)

[ PHP ] IRC Gatewayでも作ってみようか(調査)

PHPです。
CakePHP勉強会で触発されたわけではありませんYO!!

何かというと、PHP製IRC Gatewayですね。
Perlはplumを始めいろいろとありますし、Rubyはnadokaがある。 PHPないじゃん!
PHPerとしてIRCしてる以上、どうせなら自分でメンテもしやすいであろうPHP製がいいよ、たぶん。 楽しそうだし。

で、調べてみたこと。

  • PEARにNet_SmartIRCというIRC Botライブラリがある(これは前から知ってた、というか使ってる)。
  • 過去のバージョンにはircg(IRC Gateway)という関数もあった。
  • ※ この関数はPECLに移動したというマニュアル記事を見かけたが現在はないようである。 さらにircgは商用を視野にいれたものがあるようだが、事実上開発はストップ。 対応バージョンもPHP 4.2.x/4.3.xだけで、さらにいうとソースコードも未公開である。

    とりあえずこんだけ。
    「作ってみようか」になったのはircgが使い物にならないから至ったわけです、はい。 思いつきです。 そのうち頓挫するかもしれません。

    で、Gatewayなんて(当然ですが)作ったことがない。
    IRCの仕様すらよく知らない。 以前にRFC読んだことあるけど斜め読み。
    のでNet_SmartIRCのソースコードを読んでみる。 接続まででわかったこと。

  • PHPのsocket_*でソケットを張ったり切ったり。
  • コマンドを送るにはsocket_write()を使っているだけ。
  • どうもこれだけらしい。 やり方(IRCのネットワークまでの接続方法)さえわかれば誰でも作れますね、Net_SmartIRC.(いや、全部見てないけど、接続さえしてしまえばあとはたぶんコマンド投げるだけっしょ?)

    調べたここまでです。
    ここまでをまとめると、「無人Botは簡単」

    現時点で懸念してるのは、まずここまででログの取得やメンバーの取得なんかはできそうなことがわかったが、問題はIRC Server < -> Gatewayではなくて、Gateway < -> Clientです。
    どうやるんだー!? まったくわかりません。
    たぶんGatewayは、Clientから送られてきたコマンドをただIRC Serverに流すだけだと思うけど・・・合ってるかな。 まったく予想がつかない。
    そういえば、LimeChatには送受信コマンド一覧表示とかっていう機能があった気がしてきた。 あとで調べておこう。

    まぁ、フェイドアウト間違いなしですが追い込むためにPOSTしてみましたとさ。 今日はここまで。

    Comments:2

    線路の向こうの人 08-06-29 (日) 12:35

    正直いおう。
    “Hypertext Preprocessor” であえて車輪を再発明しなければいけないのかが理解できない。
    まぁ無駄なことにこそエンジニアは燃えるんだとは思うけど。

    基本的にはクライアントからのデータもそのままサーバ側にリレーするだけだよ。完全にテキストベースなプロトコルなのでいちばん簡単なTCP通信のサンプルほぼそのまま。セッション2本持って、通信が発生したセッションに対応するような作りにしないといけないので、そこでselect()しないといけないけど。

    ef(管理人) 08-06-29 (日) 14:56

    >線路の向こうの人さん
    やはり通信を2本張って上へ、下、へするだけなんですね。 ありがとうございます。

    まぁやはり、仰ってる通り楽しそうだからですかねヽ(´ー`)ノあまり通信とか詳しくないので、再開発で理解するっていうのも後付の理由になるでしょうか?(笑)

    Comment Form
    Remember personal info

    Trackbacks:0

    Trackback URL for this entry
    http://francisca.cc/2008/06/28/php-irc-gateway%e3%81%a7%e3%82%82%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%e3%81%8b%e8%aa%bf%e6%9f%bb/trackback/
    Listed below are links to weblogs that reference
    [ PHP ] IRC Gatewayでも作ってみようか(調査) from 私事。 跡地

    Home > PHP | Program > [ PHP ] IRC Gatewayでも作ってみようか(調査)

    Search
    Feeds
    Meta

    Return to page top