非同期IRCのアイディア

ニコニコ動画みたいな、同期っぽく見える非同期なチャットをIRCで。

IRCサーバーはチャットのログを全部取っていて、任意の時刻からログを再生できるようになっている。さらに、任意の時刻に発言を挿入できるようになっている。

クライアントは、ログインするときに、ログインしたことにする時刻を設定する。そうすると、その時刻からのログがサーバーから順次送られてくる。発言すると、その時刻に発言が挿入される。


IRCプロトコルを調べないといけないけど、発言を送るプロトコルと、周りの人からの発言を受け取るプロトコルだけ実装すれば、一応チャットサーバーとして動くはず。IRCと互換性のあるプロトコルにするのは、既存のクライアントの実装を使えるようにするためだけど、別にIRCだからといってもいろんな規約を全部実装しなくてもいいわけで。
/timeslipみたいなコマンドをサーバーに送ると、時刻がシークするとか! /timeslip now で現在の時刻にシークすると、普通のIRCになる。


そもそも、IRCでログが見られないのは微妙だと思う。↑を実装したサーバーなら、時刻を一番先頭にシーク&再生速度をMAXにして再生!とやると、ログが見られる。


ちょっと問題なのは、クライアントが今どの時刻にいるのかをサーバーで管理しないといけないところ。クライアントごとにシーク時刻が違うのが問題。実装にはちょっと工夫が必要かも。
クライアントごとにスレッドを立てるのが一番簡単だと思うけど、クライアントが増えるとどうなるかな。ロックとか面倒。