2011-11-16 13 views
12

誰でもZmqSocket.jsを使用したことがありますか?私はそれがブラウザとzeromqサーバーアプリケーションの間の安全なチャネルを確立するためにどのように使用できるのか知りたいと思います。そのようなユースケースには他の/より良いオプションがありますか?JavaScriptクライアントのZeroMQ

答えて

9

私はZmqSocket.jsを一度も使ったことはありませんが、それはおそらく良いアイデアではないと言えます。これは、zmqが依然として両方のピアがプロトコルをよく知っていると仮定し、無効なデータが与えられた場合に爆発することを前提としているためです。

私が今行っているのは、socket.ioを使用してブラウザと通信する単純なnode.jsベースのプロキシがあり、残りのアプリケーションがあるzeromqソケットでデータをプッシュ(読み込み)します。


アップデート2013年:私は基本的にあなたがあなただけの(非常に単純な)を実装することにより、好きな言語でサーバーを実装することができ、sockjsとzeromqへ/からZeroMQベースのメッセージをプロキシsockjsproxyを、書きましたプロトコル。

私はリアルタイムのWebアプリケーションを構築するためにPythonとScalaのサーバで個人的に使ってきました。

3

私は、UI用のWebブラウザを使用するソリューションを検討し始めました。

私は、いくつかのソースから情報を収集し、その結果をデータベースに保存し、他のシステムに情報を許可するJavaアプリケーションを持っています。

JavaアプリケーションはPUSH ZMQソケットに情報(ログ、イベントなど)を提供し、それを制御するためのREPソケット(パラメータ、診断要求の変更など)を提供します。

私は現在Tkを使用しているUIを備えたPythonアプリケーションを持っています。私はそれをWebインターフェイスに置き換える予定です。

私がZMQ JavaScript bidingに持っている問題は、iOSでサポートされていないフラッシュコンポーネントを使用していることです。 Googolingのビットを行う

私はこのことができます願っていNullMQ

を使用しています「Interacting With ZeroMQ From the Browser」と題した記事を見つけました。

1

を処理するWebSocket-to-ZeroMQプロキシを実装するもう1つの視点:ZeroMQの戦略のすべては非常にうまくいくようですが、部分的なプロキシをすぐに実行することができます。 Emilのように、私はPyZMQ < - Tornado - > WebSocketブリッジを試しています。私の場合、私はSUBソケットからメッセージを受け取ることだけを気にします。

私のモデルでは、JSONメッセージをブラウザからプロキシに送信し、新しいZMQソケットの作成を要求します。これらのソケットはデータを受け取ると、同じWebSocket接続を介してブラウザに返します。

ここにはpython proxy backendと私のjavascript proxy frontendがあります。私のPythonコードでは、AsyncRecieverクラスは、基本的にJSONエンコード/デコードを実行するZMQStreamのまわりの非常に薄いラッパーです。生のZeroMQバイトをブラウザに送信したい場合は、さらに簡単になります。ZMQSocket.on_messageコールバックをBridgeWebSocket.write_messageに直接接続するだけです。