2017-05-12 11 views
0

目的:キッチンを作成し、フロントデスクが互いに通知することができます。php:2つのクライアントがサーバのユーザ定義変数を共有する

Q:キッチンやフロントデスクから読んで設定できるPHP変数を作成するにはどうすればいいですか?変数がvStatusであるとしましょう。その計画は、フロントデスクはその後、VSTATUS =「kitchen1」を順序を作成するときで、キッチンが通知したときの順序は準備ができて、その後VSTATUS =「frontdesk1」。お互いに

私はVSTATUSを監視するためのタイマー機能を作成します。

  • フロントデスクにVSTATUS = 'frontdesk1'は、ページが更新され、そしてVSTATUS = ''を設定するとき。フロント側のタイマ機能は、vstatus = frondesk1まで続きます。 = 'kitchen1'VSTATUS台所のページが更新されるとkitchen1 '
' VSTATUS =まで、キッチン側サイクルにとタイマー機能' VSTATUS =' を設定キッチンに
  • ハードウェアのセットアップは、このようなものです:

    • フロントデスク:APA CHE Webサーバ、Webブラウザ
    • キッチン:任意の設定された間隔でのWebブラウザ
  • +0

    SQL(または他のDB)またはファイルシステムを使用できます。主な信頼性はDBにあります。 – calexandre

    答えて

    0

    ます別々のリクエストの間にPHP変数を共有することはできません - セキュリティの観点からは恐ろしいことです。

    あなたが探しているものは、ストレージです。要求処理(PHP実行)が終了しても値を保持する、PHPプロセス外の場所です。

    あり、そのために利用可能な多数のオプションがありますが、ここでの設定に/実装し、いくつかの最も一般的で最も簡単です:

    • Files - 例えばは実行read the value from fileとの冒頭に値が変化、write the new value to the fileは古い値を上書きするとき

    • キー・バリューストア(例えばMemcachedまたはRedis) - あなたはのように実行しますmemcachedの/ Redisのサーバーをインストールする必要があります独立したシステムプロセス。変更すると、read the valuewrite the valueに接続します。

    • APC cache - これは、外部サービスではなくPHP拡張機能として動作する特殊なケースです。これは、永続的または非永続的なストレージとして構成することができます。この考え方はまだ値reading/writingです。これは永続ストレージではないことに注意してください。つまり、apacheまたはphp-fpmプロセスを再起動すると、キャッシュがクリアされ、値が失われます。

    • Database(例えば、MySQLまたはMongoDB)です。この場合も、データベースサーバーをインストールし、その使用方法についての読書を行う必要があります。

    確かに多くのオプションがありますが、これらはまず何かです。

    +0

    ありがとう、私はファイルアプローチから始まると思います – inogbox

    0

    あなたが値を確認したい場合には、サーバーおよびAJAX要求にその変数を格納するためにSQLを使用する必要が

    +0

    あなたは最高のアプローチは次のようだと思う:私はいつもxmlhttpリクエストを作成して:vstatus.phpと言う。 – inogbox

    関連する問題