可以使用ActiveMQ自带的Stomp协议来实现。Stomp是一个简单的文本协议,可以用于传输消息。以下是一个Java示例代码,该代码使用Stomp协议发送消息以及监听ActiveMQ的特定端口进行消息处理。
import org.apache.activemq.transport.stomp.Stomp;
import org.apache.activemq.transport.stomp.StompConnection;
import java.io.IOException;
public class StompExample {
public static void main(String[] args) {
StompConnection connection = new StompConnection();
try {
connection.open("localhost", 61613);
connection.connect("", "");
System.out.println("Connected");
//发送消息
sendMessage(connection, "/queue/test", "test message");
//接收消息
receiveMessage(connection, "/queue/test");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void sendMessage(StompConnection connection, String destination, String message) throws IOException {
System.out.println("Sending message: " + message);
connection.send(destination, message);
}
private static void receiveMessage(StompConnection connection, String destination) throws IOException, InterruptedException {
connection.subscribe(destination);
System.out.println("Listening for messages...");
StompFrame received = connection.receive();
System.out.println("Received message: " + received.getBody());
connection.unsubscribe(destination);
}
}
在该示例中,我们首先创建了一个StompConnection实例,并将其连接到ActiveMQ特定端口(在此示例中为61613)。然后我们建立Stomp连接,通过sendMessage方法发送消息并通过receiveMessage方法接收消息。这样,ActiveMQ就能够直接监听端口而无需添加任何发送方。