4

「API」として socket.io を使用する Web サイトがあります。基本的に、誰でも Web サイトのソース コードをダウンロードし、それを変更して独自のクライアントを簡単に作成できます。たとえば、同じカスタム クライアント サイド スクリプトをすべて実行する 6 つのクライアントがあります。スクリプトは、socket.io API を使用するドメインではなく、自分のドメインでホストされています。

誰が接続しているかを追跡し、特定のデータの合計を保持できるようにしたい. たとえば、個々のクライアントの残高が 0.5 の場合、サーバーのために、合計が 3 残高であることを認識できるようにしたいと考えています。

私が考えることができる最も明白なアプローチは、物事を追跡するためにMySQLへの呼び出しとAJAXの組み合わせを行うことですが、それは長すぎるようです.

CURL もできますが、それは技術的に難しいでしょう。

6 つの異なる socket.io クライアントからの残高を単純に合計し、それらに情報を送信する単純で簡単な方法はありますか?

4

1 に答える 1

0

PHP バックエンドで、APC や memcached などのオブジェクト キャッシュ レイヤーを共有メモリとして使用します。そうすれば、異なるインスタンス/クライアント間の同期を維持できます。

これはスレッドセーフではないため、マルチプロセッシング セキュリティを実装する必要があることに注意してください。

例えば:

/* PHP application 1: */
(($value = apc_fetch("IncrementValue")) != FALSE) ? apc_store("IncrementValue",$value+1) : apc_store("IncrementValue",1);

次に、別のユーザーが次のようにアクセスできます。

echo apc_fetch("IncrementValue");

これは、セッション間で通信するための粗雑な方法ですが、高速です。

于 2013-08-20T12:41:51.727 に答える