我正在开发消息推送给订阅特定事件的所有用户子集。用户订阅RabbitMQ中的主题,格式为:user-id.event-type.id.我使用Spring WebSockJS、Stomp、RabbitMQ以及前端SockJS和Angular JS。用户应该被通知关于事件的所有行动(评论等,日期更改)。
到目前为止,我们拥有的:
首先,我通过REST webservice终结点进行身份验证,并将令牌放入Cookie。然后我们连接到webSocket。用户订阅话题(/话题/user-45.meeting.1235)并且他们得到通知。但是我的问题是一些用户没有收到通知。对于第二个用户,由于某些原因没有在RabbitMQ中创建队列。有人知道为什么吗?
这是我在Spring applicationContext中的代理设置。xml:
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/stomp">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:stomp-broker-relay relay-host="localhost" relay-port="61613" system-login="guest" system-passcode="guest" prefix="/queue, /topic"/>
</websocket:message-broker>
这就是通过Sockjs订阅的方式:
var ws = new SockJS('http://' + location.host + path);
var stompClient = Stomp.over(ws);
stompClient.connect({
username: '',
password: '',
host: '/'
}, function () {
stompClient.subscribe('/topic/user-45.meeting.' + obj.id,
function (message) {
console.log(message);
}, {
persistent: true
});
});
若我们在SUBSCRIBE框架中指定unique Id字段,它将为每个用户创建唯一的队列。这条路走吗?
据我所知,您需要订阅\队列
而不是\主题
。通过这样做,您不需要为不同的用户自定义主题名称,这将由Sockjs根据登录用户进行处理。在服务器端,您还可以通过使用\队列\user\{用户名}\{队列名称}
向特定用户发送消息。
我有一个websocket服务器和一个websocket客户端,都是Java的。websocket服务器具有以下功能: 在 Java 网页滑板客户端中,我在我的踩踏会话处理程序中提供了以下内容: 然后,我能够通过客户端向服务器路径“hello”发送消息来在两者之间进行通信,然后由于客户端订阅了“topic/greetings”,所以我也要用我的stompFrameHandler来处理响应。 但是我
一、STOMP协议介绍 STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。 STOMP协议的前身是TTMP协
我在这里做错了什么?我试图使用Stomp在Artemis 2.13.0中测试一些东西,但是当我使用Python脚本的命令行实用程序时,我不能订阅队列,即使在我使用该实用程序将消息发布到一个地址之后也是如此。 另外,如果我给它一个新的队列名,它会创建它,但不会将我发布的消息拉到它。这让人困惑。我的实际Java应用程序的行为与此不同--它使用的是JMS 这使得我认为Stomp试图在订阅时创建队列,但我
我正在使用ActiveMQ Artemis消息传递系统,我正在用STOMP(STOMP.py)测试我的设置。 我在Artemis上创建了一个名为的“地址”,并为其附加了两个队列: (组播) (组播) 那么如何访问队列呢?例如,如果我使用stomp.py命令行工具,如下所示: 我得到了错误: 这是我遗漏的命名约定吗?还是一种指定主题vs队列的方法?我在这里遗漏了什么,太明显了,无法清楚地记录下来?
是否有一种方法可以使用AWS CLI列出特定SQS队列订阅的所有AWS SNS主题? 我已经知道如何看到一个SNS主题上的订阅者列表,但这只有在我知道SNS主题的名称时才起作用。在这种情况下,我只知道SQS队列的名称。 我在网上搜索什么也找不到。
如何在AWS CloudFormation中创建Amazon SQS队列并订阅Amazon SNS主题? SNS主题名=T1 SQS队列名称=Q1 我需要一个JSON或YAML格式的模板 请帮帮我。