无法使 Java QPID 工作
Can't get Java QPID to work
我正在尝试在 Java 中创建一个简单的 AMQP 应用程序。应用程序应该只是在两个客户端之间跳动一个数字。每次收到该号码时,客户端应将其加 1 并将其发送回其他客户端。但是,我根本无法让这个例子发挥作用。我可以发送第一个号码,但从未收到。在经纪人的网络界面中,我看到零连接和消息。我做错了什么,但无法弄清楚它是什么。希望这里有人可以发现错误。下面是我写的代码。
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());
}
好吧,我完全关闭了防火墙并稍微更改了代码以监听和订阅我的本地 IP 地址,这对我来说效果很好:
Messenger mng = Proton.messenger();
mng.start();
mng.subscribe("amqp://~xxx.xxx.xxx.xxx");
Message msg = Proton.message();
msg.setAddress("amqp://yyy.yyy.yyy.yyy");
....
我正在尝试在 Java 中创建一个简单的 AMQP 应用程序。应用程序应该只是在两个客户端之间跳动一个数字。每次收到该号码时,客户端应将其加 1 并将其发送回其他客户端。但是,我根本无法让这个例子发挥作用。我可以发送第一个号码,但从未收到。在经纪人的网络界面中,我看到零连接和消息。我做错了什么,但无法弄清楚它是什么。希望这里有人可以发现错误。下面是我写的代码。
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());
}
好吧,我完全关闭了防火墙并稍微更改了代码以监听和订阅我的本地 IP 地址,这对我来说效果很好:
Messenger mng = Proton.messenger();
mng.start();
mng.subscribe("amqp://~xxx.xxx.xxx.xxx");
Message msg = Proton.message();
msg.setAddress("amqp://yyy.yyy.yyy.yyy");
....