1

これは、MT/RMQ の基本的な知識を持っている人にとっては簡単なことだと思います。

Web から単純なクライアント/サーバーの例を取り上げて、自分のマシンでローカルに動作させようとしていますが、うまくいきません。「クライアント」メッセージが発行されていることを示す RabbitMQ Web 管理がありますが、「サーバー」はそれらのメッセージを取得していません。

これは私が持っているコードです:

    // Server
class Program
    {
        static void Main(string[] args)
        {
            Console.WindowWidth = 200;
            Console.WriteLine("This is the server");
            Bus.Initialize(sbc =>
            {
                sbc.UseRabbitMq();
                sbc.ReceiveFrom("rabbitmq://localhost/simple_first_server");
                sbc.Subscribe(subs =>
                {
                    subs.Handler<string>(msg => Console.WriteLine(msg));
                });
            });
            Console.ReadKey();
        }
    }

// Client
    class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("This is the client");
                Bus.Initialize(sbc =>
                {
                    sbc.UseRabbitMq();
                    sbc.ReceiveFrom("rabbitmq://localhost/simple_first_server");
                });
                String read;
                while (!String.IsNullOrEmpty(read = Console.ReadLine()))
                {
                    Bus.Instance.Publish("hello");
                }

                Console.ReadKey();
            }
        }

参考までに、私は Windows 8 (64bit) を実行しています。Erland と RabbitMQ をインストールする以外に、Windows を構成していません。

助けてくれてありがとう

4

1 に答える 1

2

2 つのプログラムは、異なるキューから読み取る必要があります。サーバーがメッセージを読み取る前に、クライアントがキューから読み取ってメッセージを破棄している可能性があります。

于 2013-06-29T03:50:11.453 に答える