我们正在将spring web套接字集成到我们的应用程序中,并且我运行了hello world示例,并且令人惊讶的是Spring为我们连接所有内容以将服务器端通知推送到客户端。
但是我有一些简单的问题
1)如何创建队列?我正在使用ActiveMQ并且队列名称不同(例如,像greetings-user3n9_jn3i)然后我在目的地中指定的例如
simpMessageSendingOperations.convertAndSend("/test/greeting", new Greeting("Hello Socket Listener!"));
2)目的地名称是否与队列不同?
3)我正在使用ActiveMQ控制台创建新的队列,例如/ test1 /问候和发送我正在客户端订阅它们,如图所示
var stompClient = null;
connect();
function connect() {
var socket = new SockJS(stompUrl);
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/user/queue/greetings', function(greeting){
alert(greeting);
});
});
}
function disconnect() {
if (stompClient != null) {
stompClient.disconnect();
}
setConnected(false);
console.log("Disconnected");
}
$("#lstnMsgsBtn").click(function() {
$.ajax({
url: testUrl,
type: "POST",
success: function(data) {
var queueName = data.queueName;
stompClient.subscribe(queueName, function(greeting){
alert(greeting);
});
},
error : function(jqXhr, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
我无法订阅queueName,我很确定我的思路方式错误,任何指针都会非常感激。
答案 0 :(得分:0)
我使用过RabbitMq,他们documentation解释了他们如何解析目标模式。我认为它在主动mq中非常相似。通常就像
/exchange/routingkey
将为每个订户动态生成队列,并通过路由密钥绑定到交换。但您也可以指定队列。您必须遵循交易所指定的语法。
我想上面也回答这个问题。