当前位置: 首页 > 知识库问答 >
问题:

多个用户会话未接收到订阅消息-spring stomp websocket

方宏富
2023-03-14

我正在使用Spring stomp websocket框架向客户机发送订阅消息。我们使用ActiveMQ作为消息代理,并使用stomp javascript客户机。Spring 4.1.5和在此体系结构中,消息是通过以下方式发送的:

simplemessagingTemplate.convertAndSendToUser(user, "/queue/msg", serverMsg, map);
  stompClient.subscribe('/user/guest/queue/msg', function(greeting){              
                    x = JSON.parse(greeting.body);
                    ...
                    }
2015-04-11 14:39:40 DEBUG StompBrokerRelayMessageHandler:738 - Forwarding SEND /queue/msg-user1 session=_system_ application/json;charset=UTF-8 payload={"my message to you...)
2015-04-11 14:39:40 DEBUG StompBrokerRelayMessageHandler:738 - Forwarding SEND /queue/msg-user0 session=_system_ application/json;charset=UTF-8 payload={"my message to you...)

我只看到一个客户机接收到消息,而另一个没有。通过阅读Spring文档,我了解到这是默认的行为。谁能告诉我我做错了什么。

多谢了。

共有1个答案

易俊驰
2023-03-14

您应该使用主题的语义,而不是队列。

队列允许使用一次消息,但主题将允许每个订阅服务器使用一次消息。所以像/topic/user/guest/msg这样的东西可能会起作用。

 类似资料:
  • 我有一个调查多个主题的消费者。对于这个问题,我限制了每个主题一个分区。假设当消费者开始轮询时,每个主题都有一些数据。阅读的顺序是什么? 是循环赛吗?它是从第一个读到下一个吗?我使用进行轮询。

  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html 组合模板并添加至帐号下的个人模板库 $tid = 563; // 模板标题 id,可通过接口获取,也可登录小程序后台查看获取 $kidLi

  • 开普勒消息目前分为三大类:公告,告警和通知。 通知中根据不同的操作事件类型,分为十几个事件。每个事件都跟项目操作相关。便于接收项目操作变更的通知。 分类 事件 公告 Alarm 告警 Proclaim 通知 Build,Apply,Audit,Delete,Rollback,Logging,Reboot,Command,Storage,Extend... 订阅界面: 用户中心,点击头像,下拉菜单→

  • 我从以下链接获得所有信息: https://kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/clients/consumer/kafkaConsumer.html 当我们运行consumer时,我们没有从consumer端得到任何通知。请给我一点主意。

  • 概述 为了能够让轻应用订阅号的开发者接收到用户在消息窗口的留言消息,开发者可以在管理后台设置消息服务器并开启接收用户对话消息模式。 设置消息服务器时接需要提供可用的接收消息的回调URL地址,为了让通信更加安全,建议使用https。 设置成功并开启了接收对话消息模式后,用户在轻应用或订阅号窗口里发送的消息会推送给设置的URL,服务器接收到消息后,可以通过异步发送消息接口给用户回复消息。 设置消息服务

  • 我正在使用代码实现Azure服务总线主题,这些主题可以在以下位置找到:https://docs.microsoft.com/en-us/Azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions 我尝试运行订阅者程序的两个实例,它包含以下方法: 但是,这不允许两个订户都接收消息,它接收的消息是两个订户