問題タブ [messaging]
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.
c# - c#でローカルネットワーク全体でUDPマルチキャストを行う方法は?
ローカル ネットワークで簡単な UDP 通信を機能させようとしています。
私がやりたいことは、ネットワーク上のすべてのマシンにマルチキャストを行うことだけです
これが私の送信コードです
ここに私の受信コードがあります
ローカル マシンでは完全に動作しますが、ネットワーク経由では動作しません。
-ファイアウォールではないようです。両方のマシンで無効にしましたが、それでも機能しませんでした。
-クライアントマシンのハードコードされたIPアドレスに直接送信すると機能します(つまり、マルチキャストではありません)。
どんな助けでも大歓迎です。
messaging - メッセージ ブローカと ESB の違い
Message Brokers と ESB に関するさまざまな質問/記事を調べました (stackoverflow でも)。Message Broker と ESB の明確な違いは何ですか? ここで、製品、Websphere Broker と Mule ESB を比較しようとしています!!
まず、(任意のバージョンの) Webshere Broker は ESB ですか? 私たちの IBM 製品担当者は、それが ESB であると主張しています (私はそれについて驚くことはありません)。
私の限られた情報によると、Message Broker は HUB-SPOKE モデルで動作します。ただし、ESB はバス アーキテクチャで動作します。一体、それは何を意味するのだろうか?HUB が失敗した場合 (利用できないと思われます)、ブローカーは完全に失敗します。これはESBの場合ではありません(だから彼らは言います)。ここで理解できないのは、「バスに障害が発生した場合」です。
ESB とブローカーに関する通常の機能は、ルーティング、変換、オーケストレーションなどを提供することです。したがって、両方がこれを提供する場合、なぜ一方を他方よりも選択するのでしょうか。
対立の別の領域は、変換に関するものです。ESB は、メッセージ ブローカとは異なる方法でそれを促進しますか? これについての洞察が本当に欲しいです。
ここで、HORIZONTAL スケーリングについて説明します。誰が誰よりも優れていますか?または、複雑さ(またはその他の要因)の点で、両方とも同じようにスケーラブルです。もちろん、コスト面では、Webspere Broker はボックスごとに (もちろん CPU ごとに) 料金を請求します。私は、商用の MULE ESB でさえそれをしないと信じています。コストの部分は別として、ESB スケーリングとメッセージ ブローカ スケーリングの意味は何ですか。ESB でサービス レベルまでスケールアップできることをたまたま知っています。これはメッセージ ブローカで可能ですか?
java - COBOL から Java にメッセージを送信するために使用できるオープン ソースのメッセージ キューはありますか?
Java スタック (Tomcat など) があり、COBOL を実行しているメインフレームから Java 側にメッセージを送信する必要があります。利用可能なオープン ソース キューのいずれかがそれを行うことができますか?
java - 英語以外の言語でSMSを送信する方法
SMSの送信にLogicaSMPPAPIを使用しています。デフォルトのデータコーディングが「0」のプレーンな英語メッセージを送信できるようになりました。ヒンディー語や中国語などの他の言語でSMSを送信する場合、設定する必要のあるさまざまな値を教えてください。
同じUDHを作成する必要がありますか?データコーディングを使用する必要がありますか?esmクラスを設定する必要がありますか?データをUnicodeとして送信する必要がありますか?
これに関する提案は非常に役立ちます。
java - MQJE018: プロトコル エラー - 予期しないセグメント タイプを受け取りました
すべての MQ 達人に呼びかけます。
デスクの下に、次のような本番環境を複製するために使用するボックスがあります。
WebSphere 6.1 フェドラ Linux MQ 6.0
アプリケーションの 1 つが MQ キューにメッセージを送信しようとするたびに、次のエラーが発生します。 MQJE018: プロトコル エラー - 予期しないセグメント タイプを受信しました
これが何を意味するかについての提案をいただければ幸いです。スタック トレースを以下に示します。
EDIT:私はIBMのドキュメントで理由コードを調べましたが、ほとんど役に立ちません
messaging - 別のユーザーがオンラインになったことをユーザーに通知する方法は?
yahooメッセンジャーを使って友達とチャットしています。私の友人がオンラインになるたびに (ほぼ中間)、YM は私に通知します。Yahoo! (および他の企業)はこれを実装するために何をしますか?私が推測する限り、この問題を解決するにはいくつかのテクニックがあります:
プル: クライアントは常に (おそらく 500 ミリ秒の期間) サーバーに、(ユーザーのリスト内の) どのユーザーがオンラインになったのかを尋ね、ユーザーに通知します。
プッシュ: サーバーはどのユーザーがオンラインになるかを判断し、クライアントに通知を送信します。
2 番目のアプローチは、はるかに受け入れられます。ユーザーのデータには、彼の友人 (彼をリストに追加した人) のリストが含まれる場合があり、ログイン イベントが発生すると、サーバー アプリはこのリスト内のすべてのユーザーに通知メッセージを送信します。
OK、これは私の推測です。実際にどのように実装されましたか?教えて頂けますか?
ありがとうございました。
client-server - サーバー間通信用のMSMQ
サーバーからクライアントへの永続的な「プッシュ」通信のためにMSMQを検討していました。サーバーごとに最大1000のクライアントが存在する可能性があります。
テストの1つでは、300のオフラインクライアントに小さなメッセージを送信してから、オンラインクライアントにメッセージを送信しました。MSMQが配信不能メッセージ(MMCを介して監視)を処理したため、最後のメッセージは40分以上遅延しました。また、MSMQを適切に機能するリターンパスに使用します。
オフラインホストへの接続を試行する時間を短縮することで、MSMQをこの使用パターンに適合させる方法はありますか?そうでない場合は、他に適したキューイング製品はありますか、それとも自分の時間をロールバックしますか?生のスループットは優先事項ではありませんが、クライアント(かなり古いマシンである可能性があります)のメモリフットプリントと同様に、送信キューの数と予測可能性/最大遅延が優先されます。
client - メッセージング サービスを作成する方法
XMPP プロトコルを使用するメッセージング サービスを作成したいと考えています。このサービスのサーバー側とクライアント側の側面をどのように実装しますか? メッセージング フレームワークを実行するサーバー (Jabberd 2 など) が必要になることはわかっています。これをセットアップして実行するのはどれほど難しいでしょうか? また、クライアント プログラムをこのサービスに接続する最良の方法は何でしょうか? あるクライアントからサーバーを介して別のクライアントへのメッセージのプッシュを開始するにはどうすればよいですか?
performance - Erlangノードの優先順位付け
n個のErlangノードのクラスターがあり、そのうちのいくつかはLAN上にあり、他のノードはWANを使用して(つまり、インターネット経由で)接続されていると仮定すると、a)異なる帯域幅の可用性/動作に対応するための適切なメカニズムは何ですか? (たとえば、遅延が誘発される)およびb)計算能力が異なるノード(またはそのことについてはメモリの制約さえある)?
言い換えると、計算能力の高いローカルノードを、レイテンシが高く強力でない可能性のあるローカルノードよりも優先する方法、または送信レイテンシの高い高性能リモートノードを優先して、これらのプロセスを具体的に実行する方法を教えてください。比較的巨大な計算/送信(つまり、メッセージごと、時間単位ごとの完了した作業)の比率?
私は主に、クラスター内の各ノードにベンチマークプロセスを送信して初期化中に実行することでベンチマークを行うことを考えています。これにより、メッセージ処理に関連するレイテンシーと全体的な計算速度を計算できます(つまり、ノードを使用します)。 -ノードが任意のタスクで終了する速度を決定するための特定のタイマー)。
おそらく、そのようなことは、一方では代表的なデータ(つまり平均化データ)を取得するために繰り返し実行する必要があり、他方では動的に調整できるようにするために実行時に役立つ可能性さえあります実行時条件の変更に。
(同じ意味で、他のマシンで実行されているノードよりもローカルで実行されているノードを優先したい場合があります)
これは、特定のノードが特定のジョブを処理できるように、内部ジョブディスパッチを最適化することを目的としています。
c++ - UDP データグラムのシーケンスを送信する「正しい」方法は?
UDP の不安定性は物理層の特性であるという印象を受けましたが、そうではないようです。
一連のパケットに分割された UDP 経由でメッセージを送信しようとしています。メッセージの識別と並べ替えは暗黙的に行われます。
同じコンピューターで実行される 2 つのアプリでこの方法をテストし、スムーズに実行されることを期待しました。ただし、データ転送は完全に同じマシン上の 2 つのプログラム間で行われたにもかかわらず、パケットの損失が頻繁に発生していました。損失も非常にランダムなようです。メッセージ全体が通過する場合もあれば、通過しない場合もあります。
さて、同じマシンでも損失が発生するという事実は、私がそれを正しく行っているかどうか疑問に思います。
もともと、メッセージのすべてのピースをシングルショットで非同期に送信し、1 つのピースの完了を待たずに次のピースを送信していました。
次に、前のメッセージの完了ルーチン内から次のメッセージを送信しようとしました。これにより、パケット損失率は改善されましたが、完全に防止されたわけではありません。
ピースの間に一時停止 (Sleep(...)) を追加すると、100% 動作します。
編集: 答えが示唆したように:パケットは単に送信されるのが速すぎて、OS は最小限のバッファリングを行います。それは論理的です。
では、確認応答をシステムに追加して再送信するのを防ぎたい場合 (その場合は TCP を使用するだけで済みます)、どうすればよいでしょうか? データレートをより高いレベルに落とすことなく、パケット損失率を改善する最善の方法は何ですか?
編集2: 問題は、バッファが利用できないというよりも、正確にバッファオーバーフィルではない可能性があることに気づきました。私は非同期WSARecvFromを使用して受信しています。これは、私が理解しているように、デフォルトのOSバッファをオーバーライドするバッファを取ります。データグラムが受信されると、バッファに送られ、バッファがいっぱいかどうかにかかわらず、完了ルーチンが呼び出されます。
その時点で、完了ルーチン内から WSARecvFrom が再度呼び出されるまで、受信データを処理するためのバッファはまったくありません。
問題は、ある種のバッファープールを作成する方法があるかどうかです。そのため、別のバッファーが処理されている間にデータをバッファーに入れることができますか?