Я хочу, чтобы мой код прослушивал rabbitmq, а затем отображал это сообщение как toater на веб-сокете
До сих пор мне удавалось прослушать сообщение, которое я вижу в журналах, но когда я его проверял,Я вижу, что мой веб-сокет открыт, подключен и подписан , но не получает никаких сообщений,
Я следовал этим урокам https://spring.io/guides/gs/messaging-stomp-websocket/ Я новичок в веб-сокете и JS специально.
Вот что я написал до сих пор.
WebSocketConfig.java:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/notifications");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/v1/quizzes").withSockJS();
}
}
Это мой потребитель
@Component
public class EventConsumer {
private Logger logger = LoggerFactory.getLogger(EventConsumer.class);
@Autowired
NotificationService notificationService;
int i;
@StreamListener("Event")
public void receivedEvent(String message) {
notificationService.sendNotification(message);
logger.info("EVENT Received "+ ++i);
}
}
Вот так я отправляю подписчику
@Service
public class NotificationService {
private Logger logger = LoggerFactory.getLogger(NotificationService.class);
@SendTo("/notifications")
public String sendNotification(String message) {
logger.info("IN SEND NOTIFICATION " + message);
return message;
}
}
app.js
var ws;
var stompClient;
ws = new SockJS("/v1/quizzes");
stompClient = Stomp.over(ws);
stompClient.connect({}, function(frame){
stompClient.subscribe("/notifications", function(message){
Materialize.toast(message)
console.log("received " + message);
});
}, function(error) {
console.log("Stomp protocol error." + error);
});
и этот index.html
<!DOCTYPE html>
<html>
<head>
<title>!WebSocket</title>
<script src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/sockjs-client/sockjs.min.js"></script>
<script src="/webjars/stomp-websocket/stomp.min.js"></script>
<script src="/app.js"></script>
</head>
<body>
<noscript><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websocket relies
on Javascript being
enabled. Please enable Javascript and reload this page!</h2></noscript>
<div class="col-md-6">
<form class="form-inline">
<div class="form-group">
<label>WebSocket connection</label>
</div>
</form>
</div>
</body>
</html>