2012-02-19 10 views
5

私は現在、静的なWebページを提供するためにレールを使用しています。私はNodeJsを試して、アプリケーションのリアルタイムの一部を処理しています。Nodejsサーバとレール間の通信を構造化する方法は?

私は、Nodejsがdbと私のレールサーバーからの読み取りに書き込むことによって、Nodejsと私のRailsサーバーとの間の一方向の通信を行うことができました。

もう1つのやりたいことは、別のことですが、RailsのアクションがNodejsでアクションを引き起こします。明らかに、私は愚かであり、ノードがデータベースサーバを継続的にポーリングするようにすることができます。

私のオプションは何ですか? RPCは、両方の方法

TCPソケットを設定し、両方の

  • 間のコールを設定

    1. がより簡単/迅速なオプションはありますか?

  • 答えて

    3

    技術的には、何か簡単にしたい場合は、dnodeをRPCでTCPまたは名前付きパイプを提供し、それはruby implementationがあります。 RPC呼び出しを非常に簡単にし、TCPであるのでクロスマシンを使用することができます。

    メッセージキューをzeromqとすることもできますが、それは不要なオーバーヘッドがあると思います。お互いに話し合う2つ以上のプロセスがある場合は、良いでしょう。

    プロセスの両方が1台のマシンで実行されている場合は、最小レイテンシが必要な場合は、名前付きパイプとstdioを通信に使用する必要がありますが、ノード内のモジュールはわかりませんそれを抽象化するのに役立ち、stdioで独自のRPCモジュールを構築する必要があります。

    +3

    これを追加するには、異なる言語で書かれた異なるプロセスが標準化されたプロトコルで互いに通信する、エコシステムを目立たなくてはならない場合は、ゼロを考慮してください。それがzeromqが提供できるものです。コミュニケーション層を単純化し、プロセスが互いに話をするのを簡単にします。 –

    3

    あなたはRedisのを使用している場合は、私が最近書いたredis_message_capsule:

    これを行うに。気軽に試してみてください。

    +0

    +1これは本当にすっきりした解決策です。すばらしい仕事をありがとう。 – lorefnon

    関連する問題