5

Websockets と Symfony 2 を使用してチャット アプリケーションを作成しようとしています。特定のチャットルームの受信メッセージは MySQL データベースに保存し、送信メッセージはそのチャットルームのすべての登録者に送信する必要があります。バックエンドにこのようなものを使用することを考えていました(Symfony 2を使用) https://github.com/GulDmitry/php-websocket-server

そして、これはフロントエンド用です http://socket.io/

チャットルームが更新されたときに誰にメッセージを送信するかを指定する、ある種のグローバル サーバー データ構造にすべてのユーザーを追加する必要があると考えています。そのような構造はPHPで可能ですか? そうではないように思われるので、この問題に取り組む最善の方法はわかりません。

4

1 に答える 1

5

はい。「サーバー」は通常、永久に実行される単一のphpプロセスです。Webサーバーで実行したくないので、たとえばコマンドラインからソケットサーバーを起動して実行させます。この構造では、配列を使用してすべてのユーザーを格納できます。

最終的には、複数のインスタンスを実行したい場合があります。複数のスクリプトで、メモリ、ファイル、データベース、またはその他の形式のIPCを介して通信することができます。したがって、構造は単一のソケットサーバープロセスの外部で維持できます。しかし、これらはあなたの質問の範囲を超えた複雑さです。

于 2012-05-15T22:25:35.333 に答える