Stomp java客户端
如果使用STOMP客户端进行服务器端编码时出现任何错误,我想向客户端发送警报。我在谷歌上搜索过,没有找到任何例子,但我找到了 我已经在controller中编写了以下代码Stomp java客户端,java,spring,stomp,Java,Spring,Stomp,如果使用STOMP客户端进行服务器端编码时出现任何错误,我想向客户端发送警报。我在谷歌上搜索过,没有找到任何例子,但我找到了 我已经在controller中编写了以下代码 WebSocketClient transport = new StandardWebSocketClient(); WebSocketStompClient stompClient = new WebSocketStompClient(transport); stompClient.setMessageConverter(n
WebSocketClient transport = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(transport);
stompClient.setMessageConverter(new StringMessageConverter());
String url = "ws://localhost:8080/SpringMVCStompClient/alert";
StompSessionHandler handler = new MySessionHandler();
stompClient.connect(url, handler);
MyHandler代码是:
public class MySessionHandler extends StompSessionHandlerAdapter {
@Override
public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
Alert alert= new Alert();
alert.setName("Server");
alert.setMessage("Message from server");
session.send("/topic/alert", alert);
}
}
当我试图执行时,这个执行不会进入MyHandler类。这样做对吗帮助我如何向客户发送警报 Websocket XML配置
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/alert">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>
客户端js代码服务(function(angular, SockJS, Stomp) {
angular.module("alertApp.services").service("AlertService", function($q, $timeout) {
var service = {}, listener = $q.defer(), socket = {
client: null,
stomp: null
};
service.SOCKET_URL = "/SpringMVCStompClient/alert";
service.ALERT_TOPIC = "/topic/alert";
service.ALERT_BROKER = "/app/alert";
service.receive = function() {
return listener.promise;
};
service.send = function(alert) {
socket.stomp.send(service.ALERT_BROKER, { priority: 9}, JSON.stringify({
message: alert.message,
name: alert.name
}));
};
service.disconnect = function() {
socket.stomp.disconnect();
};
var startListener = function() {
socket.stomp.subscribe(service.ALERT_TOPIC, function(data) {
listener.notify(JSON.parse(data.body));
});
};
service.initialize = function() {
socket.client = new SockJS(service.SOCKET_URL);
socket.stomp = Stomp.over(socket.client);
socket.stomp.connect({}, startListener);
};
return service;
});
})(angular, SockJS, Stomp);
为什么不简单地使用SimpMessageTemplate呢?我已经尝试过SimpleMessageTemplate,它遵循本文档。我没有从服务器收到任何警报。你能用配置和客户端代码更新你的问题吗?我已经按照本教程创建了聊天应用程序。现在,我正在尝试将该聊天应用程序转换为生成提醒,而不是聊天消息。感谢@Sergi SimpleMessageTemplate为我工作。使用SimpleMessageTemplate和STOMP java客户端向客户端发送消息有什么区别?
(function(angular, SockJS, Stomp) {
angular.module("alertApp.services").service("AlertService", function($q, $timeout) {
var service = {}, listener = $q.defer(), socket = {
client: null,
stomp: null
};
service.SOCKET_URL = "/SpringMVCStompClient/alert";
service.ALERT_TOPIC = "/topic/alert";
service.ALERT_BROKER = "/app/alert";
service.receive = function() {
return listener.promise;
};
service.send = function(alert) {
socket.stomp.send(service.ALERT_BROKER, { priority: 9}, JSON.stringify({
message: alert.message,
name: alert.name
}));
};
service.disconnect = function() {
socket.stomp.disconnect();
};
var startListener = function() {
socket.stomp.subscribe(service.ALERT_TOPIC, function(data) {
listener.notify(JSON.parse(data.body));
});
};
service.initialize = function() {
socket.client = new SockJS(service.SOCKET_URL);
socket.stomp = Stomp.over(socket.client);
socket.stomp.connect({}, startListener);
};
return service;
});
})(angular, SockJS, Stomp);