問題タブ [zeromq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1340 参照

.net - Excel/VBA で zeromq を使用する

私は zeromq が初めてで、Excel/VBA で zeromq を使用する例があるかどうか疑問に思っていますか? C#/.net バインディングまたは VC++ を使用して dll を作成し、Excel で呼び出すことができると思いますか? 私はグーグルを試しましたが、そこに例が見つかりませんでした。(私は古い C++ Linux プログラミングで、Windows プログラミングについてほとんど何も知りません)

私を始めるための助けは非常に役に立ちます。

0 投票する
3 に答える
16439 参照

c# - 0MQ: スレッドセーフな方法で ZeroMQ を使用するには?

ZeroMq ガイドを読んだところ、次のことがわかりました。

スレッド間で ØMQ ソケットを共有してはなりません。ØMQ ソケットはスレッドセーフではありません。技術的には可能ですが、セマフォ、ロック、またはミューテックスが必要です。これにより、アプリケーションが遅くなり、壊れやすくなります。スレッド間でソケットを共有することがリモートで妥当な唯一の場所は、ソケットでガベージ コレクションのような魔法を行う必要がある言語バインディングです。

そして後で:

注意:ソケットを作成したスレッド以外では、ソケットを使用したり閉じたりしないでください。

また、ZeroMQContextがスレッドセーフであることも理解しました。

クラスが別のクラスのイベントに登録する場合、.Net では、このイベントは、リスナーが作成されたスレッドとは異なるスレッドから呼び出される可能性があります。

イベントハンドラー内からZeroMQ-Socketsを介して何かをディスパッチできるオプションは2つしかないと思います。

  • eventhandler-invoking-thread を、ZeroMQ-Socketが作成されたスレッドに同期します。
  • スレッドセーフな ZeroMQ- を使用して、新しい ZeroMQ- を作成するSocket/イベントSocketハンドラ内のスレッドの既存の ZeroMQ- を取得するContext

0MQ-Guide が最初のものを思いとどまらせているようで、スレッドごとに新しい ZeroMq-Socket を作成することはパフォーマンス/方法ではないと思います。

私の質問:
イベントハンドラー内から 0MQ を介してメッセージを発行するための正しいパターン (意図されている方法) は何ですか?

また、ガイドの作成者は、次のように書いたときに、.Net の ZeroMQ-Binding を念頭に置いていましたか?

スレッド間でソケットを共有することがリモートで妥当な唯一の場所は、ソケットでガベージ コレクションのような魔法を行う必要がある言語バインディングです。?

私の問題/質問を強調するためのサンプルコードを次に示します。

0 投票する
2 に答える
36191 参照

python - なぜzeromqはローカルホストで機能しないのですか?

このコードはうまく機能します:

しかし、このコードは機能しません*:

このエラーが発生します:

ZMQError:そのようなデバイスはありません

なぜ、zeromqはローカルホストインターフェイスを使用できないのですか?

同じマシンのIPCでのみ機能しますか?

0 投票する
1 に答える
1302 参照

java - JZMQ が Ubuntu で debian パッケージをビルドできない

現在、JZMQ を Ubuntu (10.04.2 LTS サーバー、x86) でコンパイルする際に深刻な問題が発生しています。ソースから 0MQ をインストールしましたが、JZMQ の debian パッケージ ビルドが次のエラーで失敗します。

私はこれまでこのような debian パッケージを構築した経験があまりないので、完全なスタック トレースを以下に示します。

これについて気が狂う前に、どんな助けでも大歓迎です。;]

0 投票する
3 に答える
5856 参照

c++ - ZeroMQ でマルチパート メッセージを受信するにはどうすればよいですか?

ZeroMQ C++ ラッパーでマルチパート メッセージを受信できません。C バージョンを使用した同じコードは問題なく動作しますが、C++ ではまったく説明のない例外が発生します。マルチパート処理コードは次のとおりです。

それは非常に単純です。このバージョンは動作しません。ただし、while ループの最初の 2 行をコメント アウトし、現在コメントされている (C バージョン) コードのコメントを解除すると、機能します。これは、Windows XP sp3、Zeromq 2.1.1、および Visual Studio 2010 Express です。

単一部分のメッセージを送信すると、両方のバージョンが正常に動作します。私は何を間違っていますか?

0 投票する
2 に答える
6537 参照

python - マルチパートが機能しないゼロmqpub/ sub

これが私のスクリプトです。

そして、問題は...なぜこのコードが機能しないのですか?

[編集]zeromqメーリングリストで非常に迅速な応答を得た後、上記のコードを更新しました。

0 投票する
1 に答える
313 参照

ruby - ZeroMQのPubSubHubbub

ZeroMQを介してPubSubHubBubハブサービスを作成することは可能ですか?

更新:PubSubHubbubプロトコルを書き直すつもりはありませんでした。ZMQ_PUB / ZMQ_SUBソケット(zmq_socket(3))の上に実装されたHUBを作成することは可能だと思いましたが、それが理にかなっているのかどうかは今のところわかりません。

0 投票する
5 に答える
3504 参照

gtk - GTK/QT/Clutter アプリケーションで ZeroMQ を使用するには?

gtkアプリケーションでは、すべての実行が関数内で行われgtk_mainます。app.execまた、他のグラフィカル フレームワークには、QTClutterclutter_mainのような同様のイベント ループがあります。ただし、 ZeroMQは、挿入されるループがあるという前提に基づいています (例については、ここを参照してください)。while (1) ...

これら 2 つの実行戦略をどのように組み合わせますか?

私は現在、C で記述されたクラッタ アプリケーションで zeromq を使用したいと考えているので、もちろんそれに対する直接的な回答を希望しますが、他のバリアントについても回答を追加してください。

0 投票する
1 に答える
3806 参照

c++ - C# でシリアライズ (protobuf-net) 、C++ でデシリアライズ (protobuf) : クラスに 5 つ以上のフィールド

C# でシリアライズし、ZMQ を使用してネットワーク経由で送信したオブジェクトを C++ でデシリアライズする際に問題があります。C++ サーバー アプリケーション (Linux) が C# (Windows) からシリアル化されたメッセージを正常に受信し、メッセージを正常に逆シリアル化できる Windows に送り返すため、ZMQ 部分が正しく動作していると確信しています。その点で、あらゆる種類の切り捨てられたパケットまたはドロップされたパケットが発生しています。

ただし、Linux サーバーでメッセージを受信すると、C++ のデシリアライズ メソッドは正しくデシリアライズされず、一連のバイナリ データが 6 番目のフィールドにスローされます (これは MyObject.DebugString() で確認できます)。その他のフィールド。ただし、ここで奇妙なのは、5 つのフィールドを持つクラスが完全に正常に機能することです。C++ はそれを正しく逆シリアル化し、すべてのデータが正しく機能しています。以下は、私のコードのほんの一部です。どんな助けでも大歓迎です。

出力は次のようになります。

コピーと貼り付けに問題がありますが、出力はおそらく 3 ~ 4 行分続きます。

これは私の TestType クラス (プロト ファイル) です。

フィールド「f」がバイトとしてリストされているのは、UTF-8 エンコーディングに関する警告が表示される前に文字列だった場合、このクラスが 5 つのフィールド (列挙型はそれらの 1 つ) のみで動作する場合、それは与えられなかったからです。私にそのエラー。これは、逆シリアル化する代わりに、クラス全体のバイナリをフィールド "f" (フィールド 6) に投入するようなものです。

解決策: メモリがスレッド ソケットに送信される前にコピーされないという問題が発生しました。パブリッシャーが返送したとき、データをパッケージ化し、ルーターが受信したものを変更していました。内部で使用するデータを送信するには、C++ 側に memcpy() が必要です。助けてくれてありがとう。

0 投票する
4 に答える
4380 参照

zeromq - OpenPGM で動作するように Windows で ZeroMQ をセットアップする方法は?

OpenPGM で動作するように Windows で ZeroMQ をセットアップする方法は?