我制作了一个非常简单的 java 应用程序(它只是一个证明),我可以毫无问题地连接到我的 ActiveMQ 消息代理(它安装在我用来测试我的 java 应用程序的同一台机器上)。问题是我无法拦截任何消息。我在我的应用程序中设置了一个 messageListener,如下所示,但我不确定它是否在正确的位置,也不确定拦截消息的正确方法(例如使用管理员中可用的“发送到”选项发送的消息ActiveMQ 的控制台,如本文下部的链接中所述)。下面是 messageListener 的代码:
/*................previous code is not relevant.................*/
ConnectionConfiguration config = new ConnectionConfiguration("192.168.43.5",61222); //to get my XMPP connector uri
String msg="";
config.setSASLAuthenticationEnabled(false);
config.setCompressionEnabled(false);
XMPPConnection xmpp = new XMPPConnection(config);
try {
xmpp.connect();
xmpp.login("name", "pw");
/*Filter*/
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
/*MessageListener to get messages*/
MessageListener listen = new MessageListener() {
@Override
public void processMessage(Chat arg0, Message arg1) {
// TODO Auto-generated method stub
msg = "ok ";
msg = arg1.toString();
}
};
/*New chat with my messageListener*/
Chat c = xmpp.getChatManager().createChat("admin", listen) ;
c.sendMessage("enter text here");
}
catch (XMPPException e) {
}
/*...............other code.......................*/
这或多或少是我想要做的,使用我的java应用程序而不是spark(我已经能够用spark做到这一点)。 带有 XMPP 的 ActiveMQ
感谢所有愿意帮助我的人!