Ajax Chat登場

ちらつきなしの軽快な自動リロード

Web Tools for Online TRPG プロジェクト日本語トップページ - OSDNにてAjaxを用いたWEB CHATが公開されています。ついにTRPGのWEB CHATにもAJAXの波が押し寄せてきましたか。

Ajaxを用いた…なんていってもなんのことやら…という人も多いでしょうが、要するにリロードを押さなくても自動更新されるもんだと思ってもらえればいいでしょう。

えっそんなの今までのチャットで自動更新を1秒にすればいいんでない?なんて疑問が生じるでしょうか。しかし、それはやってみればわかりますが(実際にやるとサーバー負荷が激しいのでむやみにやっちゃだめですよ)、まず更新時のページのリフレッシュに目がちかちかします。また、フレーム(チャットの画面が発言するところと発言が表示されるところと2分割とかされてるやつ)を使ってない場合、毎秒画面が更新されるので途中で書いたメッセージが消えちゃいます。そんなわけで頻繁にリロードをしなくてはならないものをCGIだけで行うのはなかなか困難なんですよね。

このAjaxっていうのは画面表示とリロードを別のタイミングで行ってくれるものなので、画面表示は何の変化もないまま、裏でいろいろデータのやりとりをしてくれるのです。そんなわけで全然画面はちらつきません。リロードしないでも勝手に他の人の発言が表示されていきます。

TRPG用とは?

ここでTRPG用と言っているのは以下の4機能があるからです。

  • ダイス機能
  • NPC発言欄
  • ステータス表示
  • 「ささやき」機能

とりあえず必要最低限なところはそろっていると思います。
NPC発言欄やステータス表示のやり方がいかにもjavascriptっぽくて僕は好みですよ。すごく動的で必要な機能をその場で追加していくって感じなのです。
ダイス機能は今のところ簡単なものだけですけど、これからいろいろ対応していくみたいです。

サーバー負荷

コメント欄で指摘してくださった方がいますが以下の文章は真に嘘なので真に受けないでくださいね。

この話になると、僕は全然門外漢でして、何一ついえることはないのですが、WEB CHATの問題点はぶっちゃけここなのです。ここに書いてあることはほぼ嘘な疑惑があり、ほんとに信じちゃいけないことを強く警告しつつ書きます。

サーバー負荷は軽減な方向に働くと思うのですが、どうでしょうか。

iframeの中でjavascriptを生成してリフレッシュするという方針なんだと(たぶん)思うのですが、普通はサーバーにHTTPリクエストをしてそれをサーバーが対応してコネクションをきるんですよね?それが今回はコネクションを貼りっぱなしにして(ほんとか?)、ジャヴァスクリプトを徐々に吐き出させ、その中で規定時間毎にログの問い合わせをしてるんですよね…?(わからんけど)。

ということは、コネクションを毎回張りなおす分のサーバー負荷が減少してる(怪しいなw)と思うのですがいかがでしょうか。難しいなぁ。

まぁWEBCHATがリアルタイムっぽくなって、サーバー負荷も減ったなら、それはすごいことだと思います。もしほんとにそうなら、乗り換えを考えてみるのもいいかもしれませんよ。