• ベストアンサー

PHPについて基本的なこと

ですが PHPはクライアントから呼び出されたときのみサーバはその同じクライアントのみに実行結果を送るものなのでしょうか? 2人オンラインゲームを作るとなると Aさんの呼び出しによる実行結果をAさんとBさんに Bさんの呼び出しによる実行結果をBさんとAさんに 送らないといけません Aさんの呼び出しによる実行結果をAさんに Bさんの呼び出しによる実行結果をBさんに 送ることは通常のPHPの使い方ですから問題ないとして 問題は Aさんの呼び出しによる実行結果をBさんに Bさんの呼び出しによる実行結果をAさんに に送ることができるかと言うことです そのようにPHPはできていないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.3

<meta http-equiv = "refresh"> を使い, HTTPクライアントが定期的に情報を取得, 一定間隔での同期を計る方法ですね。 その方法なら,HTTPサーバでも使えます。 ただし,2秒という言葉がちょっと… というのも,HTTPクライアントソフトたる各社の Webブラウザは,それほど速いページ更新動作を 目的として設計されていません。 (同一ページ内であれば,それなりの速度で動く) その為,2秒という数字が実際に必要なら,クライ アント側の対策も必要になるでしょう。

keyguy
質問者

お礼

ありがとうございます 2秒は5秒ぐらいにしたほうがよさそうですね PHPとmetaとクリッカマブルマップによって将棋など作れるのでしょうか? 無謀でしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • cororo
  • ベストアンサー率22% (2/9)
回答No.4

<?php ob_start(); if(こまが動く処理をされたら){ echo"<meta http-equiv="Refresh" content="1;URL=http:更新されたページ(同ページでもgetで値を渡すとか">"; } とかにしたらだめでしょうか。

keyguy
質問者

お礼

ありがとうございます いけるかもしれないと言うことですね

keyguy
質問者

補足

Aさんがアクションを起こしたときの Aさんの画面の更新はPHPの本来の仕事だから細工をする必要はないのではないでしょうか? Aさんのアクションを受けてその処理結果をBさんに送るのはPHPの仕事ではないのでそのときに "<meta http-equiv="Refresh"… の処理が必要になると言うことではないでしょうか?

すると、全ての回答が全文表示されます。
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

サーバからクライアントにデータは直接送れない。 クライアントのリクエストがあれば、そのクライアントに送り返すことをしている。 ということを前提として、 Aさんの実行結果をファイルに書き出して、 Bさんがそのファイルの閲覧をリクエストすれば似たようなことはできます。 Aさんがサーバを介してBさんを直接呼び出すことはできません。 つか、PHPでオンラインゲームを作ろうとすることは間違っている。 (箱庭諸島みたいなゲームもありますが、付加がかかりすぎるので向いてない)

keyguy
質問者

お礼

ありがとうございます 無理があるのですね?

keyguy
質問者

補足

例えば2秒ごとにサーバがクライアントにアクセス要求し自動的にクライアントがサーバからデータを取りにくるといったHTMLのequiva?タグがあったような気がするのですが・・・

すると、全ての回答が全文表示されます。
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

それは,PHPを使うサーバの動作でPHPの動作ではありませんが… Webで使うHTTPサーバなら >クライアントから呼び出されたときのみ >サーバはその同じクライアントのみに実行結果を送るもの です。

keyguy
質問者

お礼

ありがとうございます ということはそういうふうにはできていないということですね?

keyguy
質問者

補足

ちょっと調べてみたのですが <meta http-equiv = "refresh"> をPHPのなかで使えば何とかならないでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A