【发布时间】:2015-08-03 22:42:09
【问题描述】:
我正在使用 Spring MVC、ActiveMQ 和 WebSocket(通过 sock.js 和 stomp.js)构建实时数据传递应用程序。
我们知道,当生产者(另一个桌面应用程序)向 ActiveMQ 推送消息时,onMessage() 方法会捕获它。
public class MessageReceiver implements MessageListener {
public void onMessage(Message message) {
System.out.println(message);
// How to push the message to a Controller in Spring?
}
}
大多数教程只是将消息打印到控制台。
我有另一个控制器叫WebSocketController:
@Controller
public class WebSocketController {
@SubscribeMapping("/getRealTimeResult.action/{submissionId}")
public Message getRealTimeResultAction(
@DestinationVariable long submissionId) {
return new Message("Message content from onMessage() method");
}
}
我想将onMessage()方法收到的消息推送到getRealTimeResultAction()方法。你能告诉我怎么做吗?
我知道 ActiveMQ 可以通过端口61613 使用stomp 与浏览器通信。
我不想这样做,因为我认为 MQ 应该对用户透明。另外我需要在WebSocketController做一些授权。
【问题讨论】:
标签: java spring-mvc websocket activemq stomp