WEBチャットの未来像

前の記事では主に現状について述べてきましたが、今回は未来像を中心に…といっても、調べてみると案外難しかったなぁ…。Ajaxとかcometとか言葉の意味するものをつかむのが大変ですね。僕がよっぽど時代遅れなのかもしれません。

まぁ落ち込まずに紹介していきましょう。IRCとWEBチャットの一番の違いはリアルタイムでログの表示が更新かどうかだと思います(IRCって何?とか言う人はまず前の記事から)。しかし、最近の技術を用いればWEBチャットであろうともリアルタイムで更新されるような仕組みが作れますよって話です。

基本的にlingrの話となります。前の記事でもPsychsさんにlingrを紹介されましたし、紅茶さん(id:koutyalemon)なんて新しもの好きでひと部屋持っていますね。熱い熱いといわれながらも僕はいまいちその良さが理解できませんでした。Lingr(リンガー)をリリースしましたなんて記事もわりと前に読みましたがいまいち理解できず、いろいろ他の記事も読んで初めて理解できたようです。これは技術者にはすごいニュースでも、使用者にはよく分からないじゃないかという気がしたんですけどどうでしょう。ここで言われているハイライトって今までありそうな感じじゃないですか?


しかし、この良さ…技術的な話なので僕もうまく説明できるかどうか心配です。僕は素人ですし、あんまり難しい話はできないので例え話で攻めることにします。

Lingr and Comet - 技術解説編に書かれていることの一部についてWEBチャットを家と郵便局に例えて説明します。家がブラウザ、郵便局がサーバーってことで一つ。

今良く使われているWEBチャット

PERLPHPで書かれているチャットの場合、家で手紙をかいて郵便局に投函し、手紙が来ているかどうかは郵便局に確認に行くような状況です。この場合、家から郵便局まで歩いている間には手紙を書くことはできません(余所見をしていると危ないですよ!)。手紙が来ているかどうか、すぐ知るためには頻繁に郵便局をたずねることになります。

Ajaxなチャット

この場合は、パシリ君を使って手紙が来ているか問い合わせることができます。パシリ君が郵便局に走っている間もあなたは悠々と手紙を書くことができます。しかし、手紙が来ているかどうか、すぐ知るためには頻繁に郵便局をたずねることになるのは同じです。パシリ君がですが…あなたがパシリ君のことを考えなければこれで十分に幸せになれるでしょう。でもあなたはよくても郵便局は大変です。パシリ君に”手紙は来てませんよ”というだけでいっぱいいっぱいになってしまいます。それにみんながこんなパシリ君を使い出したら、交通渋滞も必至です。

Ajax+Cometなチャット

パシリ君が郵便局で手紙が来るまで休むことができます。あなたは”手紙もらうまで帰ってくるな!”と言って家で待っていればいいわけです。パシリ君も郵便局で休めて嬉しいですね。なんで最初からこうしないんだという話です。

Ajax でサーバーから PUSH する Comet を使ったチャット Lingr の問題点?でいわれているのは、パシリ君が家に帰っていったときに来た手紙を取りこぼすってことですね。開発者の方は解決済みだと言っていますね。

設置

さて、これはすばらしい技術ですが、すぐ浸透するのでしょうか。

僕はJAVASCRIPTで書くクライアント部分(パシリ部分)はどれだけ便利にするかによりますが、すぐ書けると思うんですよね。逆にサーバー部分(郵便局部分)が簡単にできるかどうかよくわかりません。応接間を作るのはどれだけの手間なんでしょうね。無料サーバーにおくことを前提に考えているのですが、実行が許可されているものをつかってこれを実装するのは大変ではないのでしょうか?

これ難しいかと思ってたら案外いけそう…。Rubyが使えるサーバーを持っている人がいたらここからダウンロードして試してみるといいですよ。でもやっぱりまだちょっとって感じがするなぁ…。IEの発言はファイヤフォックスに反映されるけどファイヤフォックスの発言が逆には反映されないような…。でも1年後ぐらいには普通の技術になっていると信じてます。

ダイスはどうする

TRPGをチャットでやるとき大事になってくるのはダイスとNPC選択だと思います。
lingrで行う場合はダイスもJAVASCRIPTで実装するようですね。(Roll on lingrTriXiegreasemonkeyはユーザー側でインストールしておいて、特定のページで実行できるJAVASCRIPTです。こういうのでダイスを振るってのは新しい考え方だなぁ。ただし、クライント側でダイスを振りますと、原理的に不正が可能ですけどそのへんはまだまだ先の話ですね。

NPCの選択とか発言色の装飾とかそういうものこそユーザー側が勝手に準備すればいいことのように思います。チャットの管理者側は見た目の仕様を公開しておいて、後はユーザーが勝手にプラグインを作ってくださいっていうのはWEBチャットでは新しい形だと思いますね。どんどん進むといいですが。