私は、完全にメッセージ駆動型の小さな分散システムに取り組んでいます。現在、私は通常、何かを送信する必要があるたびにソケットを開き、その後すぐに閉じます。状態はサーバー側でのみ維持されます (たとえば、クライアントから 5 分間メッセージが到着しない場合は、メッセージが無効であると見なされます)。
ただし、クライアントでもメッセージの低レベルのスケジューリングを行う必要があります (ステータスメッセージがサーバーに到達できない場合は再試行し、それでも失敗する場合は、サーバーがダウンしていると想定し、別のサーバーに切り替えるなど)、クライアントとサーバーの両方で手動でリッスンする必要があるため(さらに、サーバーからクライアントに到達する方法について情報を交換する必要があります)。また、ある種のブロードキャスト システムを追加することを計画していますが、これは山積みになり始めています ... 問題は、このメッセージングを処理する、Mono および Microsoft と連携する .NET 用の既存のバス/メッセージング システムがあるかどうかです。もの?私は NServiceBus を見ましたが、それは MSMQ に依存しており (まだ本当ですか?)、Mono で多かれ少なかれサポートされています。全体として、NServiceBus はすでに少し重すぎるように見えます。理想的には、システムは 1:1 および 1:N 接続をサポートし、エラーを確実に処理して報告します。