3

Socket.ioNode.jsを使用してプッシュ通知を行いたいと考えています。最終的な目標は、Stackoverflow がコメントで行うのと同様のことを行い、新しいコメントを人々に通知することです。

私のサイトは PHP であり、EC2 インスタンス上の Apache で実行されます。Apache は並行性をうまく処理できないと聞いたので、Node を使用して、うまくいけば多数の同時持続接続を処理することに興味があります。私は2つの解決策があると思います:

  1. ノードをApacheと同じインスタンスに配置し、2つのサーバーをプロキシします
  2. ノードを別のインスタンスに置く

どちらの場合も、これら 2 つのサーバー間の接続がプログラムでどのように見えるかはわかりません。たとえば、WebSockets/Node はメッセージの送受信を処理しますが、これらのメッセージを MySQL データベースに保存する必要があり、それには PHP コードが必要ですか? はい/いいえ? また、私の PHP ページでメッセージはどのように受信されますか? $.postこのような URL を介して、http://mysite/receiver.php私の Apache サーバーによって解決されるでしょうか?

これをよりよく理解するのに役立つコメントまたはコードを参照してください。

4

3 に答える 3

4
  • さまざまなポートでさまざまなサーバーを実行できます。
  • サーバーが通信するために、Sessions / MySQL / flat files / Cache / json /xml...を使用できます。
  • node.js用のMySQLモジュールが存在し、node.js用のmemcacheモジュールが存在し、さらに多くのPHPコードは不要であり、データベースをクエリするためのオプションです。
  • PHPページのメッセージはデータベースからフェッチされてレンダリングされます。node.jsがmysqlサーバーにデータを格納する場合は、PHPでそれらをフェッチするか、一時的に配列に格納してクライアントにメッセージをプッシュし、新しいユーザーがデータベースに格納することができます。 「現在の」コンテンツがあります。
  • 必要に応じてリアルタイムでWebSocketを介してクライアントにデータをストリーミングできるため、ajaxの使用は避けてください。

--編集
済みノードと一緒にvhostsを使用する方法 に関するいくつかの追加情報-http-proxy? コメントでTimothyStrimpleから提供されたリンク、ありがとう

いくつかのMySQLドライバーはこの質問で見つけることができますnode.jsで利用できるMySQLドライバーは何ですか?

ポートの構成について:
-Apacheでは、httpd.confを手動で編集してデフォルトのポートを定義する必要があります。-node.jsでは
、コードでポートを定義できます 。node.jsを単純なWebサーバーとして使用します。

   var connect = require('connect');
    connect.createServer(
     // .. code
    ).listen(PORT);

お役に立てば幸いです

于 2012-07-24T16:01:45.120 に答える
2

これらのメッセージを MySQL データベースに保存する必要がありますが、それには PHP コードが必要ですか? はい/いいえ?

いいえ。ノードを使用すると、サーバー上で javavscript を作成できます。また、MySQL データベースへの接続など、PHP で行うこととほとんど同じことができます。

Node と Apache の両方を同じサーバー上で実行し、NGINX を使用して 2 つの間でプロキシするか、Node を使用して Apache にプロキシすることができます。ただし、Apache を使用して Node にプロキシしないでください。パフォーマンスが低下する可能性があります。

うまくいけば役立ついくつかのリンクを次に示します。

于 2012-07-24T15:51:06.060 に答える