2ntブログ

戦国IXA チャットが自動更新されないのはなぜか?

ToSにも疲れてきて、久しぶりに戦国IXAの合戦にまじめに参加(?)してきました。
その時にふと、同盟員と合流攻撃の打ち合わせするのに、「更新」ボタン押さないとチャットの最新発言が出てこない事に不便を感じました。

同じ不便を感じている人、慣れてしまった人も居るでしょうが、これがなぜなのかを述べたいと思います。

そもそもブラウザはゲームをするためのアプリケーションではありません。
ブラウザはインターネットのホームページを見るためのものです。
そのため、ブラウザ側からの要求に応じて文字や画像などのデータをサーバから送る事はできても、サーバ側からブラウザに一方的にデータや命令を送る事ができないのです。
MMOのようなリアルタイムでクライアント(ここではブラウザの事)の要求がなくてもデータが送られてくるようなゲームは作れないんです。
なのでMMOのような双方向のやり取りが必要なゲームは、Adobe社のFlashを使うのです。

戦国IXAはMMOのようにリアルタイムでキャラクターが画面を動いたりしないし、基本的にユーザーが何か命令を送ってもそれが完遂されるのは数秒後~数時間後であるため、Flashを使わないのです。
チャットの自動更新だけのためにFlashを使うより、Flashが対応してないスマホやLinuxなどでも動き、Flashを使った他のブラウザゲームより圧倒的に軽いという利点の方を取ったのでしょう。
ちなみに戦国IXAは主にJavaScript(ジャバスクリプト)で作られています。
JavaScriptはHTMLの拡張版みたいなものなので、HTMLではできない事もできますが、基本的にブラウザの要求なしにサーバからデータを受け取るような事はできません。
他のユーザーの新しい発言があっても、ブラウザ側から「最新のチャット履歴をくれ」と言われるまでは、サーバ側から「新しい発言だよー」と送る事はできないのです。
なおJavaScriptを使ったチャットツールで自動で発言履歴が更新されるものも昔ありました。
JavaScriptの機能の一種である「タイマー」を使って数秒あるいは数分間隔でブラウザ側に最新のチャット履歴をサーバから取得するようなプログラムを組めばできます。
ただ戦国IXAの場合は、数百人なのか数千人なのか分かりませんが、そのような大人数のユーザーが一斉に数秒間隔でチャット履歴を要求した場合に、サーバが処理しきれなくなります。
よくホームページを落とす古典的な方法に、「F5アタック」という大勢でホームページサーバに最新のホームページ情報をよこせという命令を短時間に送りまくるというのがありますが、あれと同じになってしまうからです。
MMOやFPSなどのような大勢のユーザーから短時間で大量の通信が来る事に対応したサーバを使っていれば対処はできるでしょうが、基本的に戦国IXAのサーバは単なるJavaScriptなどHTMLの拡張機能にも対応しただけのWebサーバだと思われるので無理でしょうw

ホームページを見ただけで感染するウィルスとかはどうなんだ、あれはサーバから悪意のある命令を送られて実行させられるんじゃないのか?と思う人も居るでしょう。
しかしあれらも、元はブラウザが要求しなければ、つまりホームページを閲覧しに行かなければおきないのです。
インターネットをブラウザで見ている人のIPとかが分かったとしても、そこへ直接的にウィルスを送る事はできません。
少なくともブラウザの機能を使っては。
あくまでホームページを見させる、なにかホームページに設置されたボタンを押させるなどしないと、発動できないんです。

まとめると
インターネットとは、本来はユーザーの要求に応じてサーバがデータを返すだけの仕組みであり、サーバ側からユーザーのブラウザを制御する事はできない
ということです。
そういった双方向のやり取りをしたい場合は、Flashなどの外部ツールを使わなければならない
ということです。

以上です。

コメントの投稿

非公開コメント

カウンタ
プロフィール

ウホッ!いい男

Author:ウホッ!いい男
異世界転生を待ち続ける中高年のおっさん

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR