Skype的ログ持ち回りチャットシステムのアイディア

サーバーが楽するチャットシステム。


モチベーション:

  • Lingr重いす
  • でもブラウザで使えるのは良い。Skypeとかは専用クライアントが必要
  • Skypeは軽い
  • 軽くてブラウザで使えるチャットがあると良いな
  • 実装できるなら実装すればいいんじゃないか


実装の方針:
Aerial + SharedObjectのデモをベースに。

  • チャットのログはクライアントが持っている。FlashのSharedObjectに保存。Deflateで圧縮しておけば結構入るんじゃないか
  • ↑これだけでは、自分が見ていない間に発言されたログは読めない。そこで、チャットに参加した時点で「〜時〜分から今までのログを送ってくれ」とサーバーに要求する
  • サーバーはログを持っていない。要求をそのままクライアントに中継
  • クライアントは適当に自分が持っているログを返してやる。ここのところ、効率よくログを収集できるようにうまいことやる

LingrIRCとつなぐゲートウェイも書けば参入しやすいんじゃないかと。ファイアウォール問題は、443/tcpSSLに偽装するか、IPを2つ用意してAerialも80/tcp待ち受ける。

IPが2つと言っても、Aerialが使えればCGIなんて不要なので、片方のIPは静的なHTMLとかJSとかが配れればいい。どこかのレンタルサーバーにでもDNSを振っておけば安上がりなんじゃないか。Flashでクロスドメインは普通に可能。

サーバーは極めて暇。ストレージも要らない。ただし同時接続数は多い。


実装上の問題は、

の3点。最後のやつがもっとも厄介か。Lingrがpolicy-file-requestに応答してくれればFlashLingrクライアントが書けるんだけどなぁ

いや、専用クライアントが要らない時点で、Lingrにはユーザーをつなぎ止めておく手段がないんじゃないか。それを考えればLingrとのゲートウェイは要らない。