AIRとJuggernaut(Rails)でニコニコメソッドプレゼン

社内の技術交流会でニコニコメソッドプレゼンをやってみたら思いの外楽しかったので、いろいろやってみたくなって試してみた。

社内でやってみたのはWPF版だったけど、途中でなんか落ちちゃったのとShift-JIS以外のエンコードで送る人が多かったのでほかのやつを探してみた。(探す前にC#でWebサーバを書いてtelnetをやめようとしてみたけど、無料版のVisual Studioの自動フォーマット(開き中括弧が行末じゃなくて行頭にくるあたり)が許せなくてC#での開発はあきらめた)

そんで見つけたのがAIR版
これのテキストファイルを編集するWebアプリを書くのはつまらないのでAIRでWebサーバを書こうと思ったけど、SocektのListenができないことがわかって断念。次に考えたのはComet。
で、RailsのCometサーバのプラグインを探してJuggernautを使うことに決めました。
後から考えてみたらJuggernautはFlashのXMLSocketなのでCometじゃないんですよ。残念。ShootingStarより簡単そうだったんだもん。

で、ActionScriptのソースと格闘を始めたんだけど最初は書いたことなかったから全然わからず、この記事で始めるとっかかりができました。感謝。

コンパイルの仕方とかはこっちのサイトを参考にしました。感謝。

できあがったものはこちら。

クライアント側はライブラリとしてcorelibを使っているので、これをダウンロードしてコンパイル時に -compiler.include-libraries corelib.swc と指定してあげてください。

  • 現状の問題点
    • 文字が上の方ばっかりにしか流れない
    • サーバのアドレスがasファイルにハードコーディング(だからairパッケージで配布できないのです)
    • サーバに入力された文字はすべてのクライアントに通知される(Chatでいうチャンネルなどの実装が必要)
    • ログは取るけど再生はできない。(プレゼンツールとの同期をとるのは難しいですね)
      • そもそもサーバ側にログを見る機能もないし。
  • 動作環境
    • クライアント側
    • サーバ側
      • Rails 2.0.2
      • sqliteRails 2系はデフォルトだから入ってるよね?)
      • Juggernaut (gem install juggernautで入ります)
      • ダウンロードして解凍した後、configディレクトリの下のjuggernaut.ymlとjuggernaut_hosts.ymlを編集してください。
      • Railsのサーバのほか、juggernaut -c config/juggernaut.yml でjuggernautも起動する必要があります。
      • サーバの5001ポートはあけておいてください。