2
我正嘗試在Java中創建一個簡單的AMQP應用程序。應用程序應該簡單地在兩個客戶端之間反彈一個數字。每次收到號碼時,客戶端都應該爲其添加1並將其發回給其他客戶端。但是,我無法得到這個例子。我可以發送第一個號碼,但從未收到。在代理的web界面中,我看到零連接和消息。我做錯了什麼,但無法弄清楚它是什麼。希望這裏有人能夠發現錯誤。以下是我寫的代碼。無法讓Java QPID正常工作
Messenger mng = Proton.messenger();
mng.start();
mng.subscribe("localhost:5672");
Message msg = Proton.message();
msg.setAddress("localhost:5672");
msg.setSubject("foobar");
if (args.length > 2 && args[2].equals("foo"))
{
System.out.println("Sending initial: 1");
msg.setBody(new AmqpValue("1"));
mng.put(msg);
mng.send();
System.out.println("Sent initial: 1");
}
try
{
while (true)
{
mng.recv(1);
while(mng.incoming() > 0) {
Message message = mng.get();
int consumed = Integer.parseInt(message.getBody().toString());
System.out.println("Received: " + consumed);
consumed = consumed % 100;
if (consumed == 0)
{
long seconds = (System.currentTimeMillis() - start)/1000;
start = System.currentTimeMillis();
System.out.println("Last hundred messages took (s): " + seconds);
}
msg.setBody(new AmqpValue(""+(consumed+1)));
mng.put(msg);
mng.send();
}
}
}
catch (Exception e)
{
System.out.println("proton error: " + e.getMessage());
}