【发布时间】:2021-04-08 07:11:28
【问题描述】:
我遇到的问题是客户端未收到发送到用户目的地的 stomp 消息。让我解释一下:
在 WebSocketMessageBrokerConfigurer 中:
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/secured/topic", "/secured/user/queue");
config.setUserDestinationPrefix("/secured/user");
..
在我的 stompjs 客户端(以“admin”身份登录):
stompClient.subscribe('/secured/user/queue/notifications'
, function (output) {
console.log(output);
});
在日志中:
Processing SUBSCRIBE /secured/user/queue/notifications id=sub-0 session=d74f49b3-bb63-580f-b862-81647cc712b3
以及发送消息的java代码:
simpMessagingTemplate.convertAndSendToUser(
"admin", "/secured/user/queue/notifications", out);
导致日志:
Processing MESSAGE destination=/secured/user/queue/notifications-userd74f49b3-bb63-580f-b862-81647cc712b3 session=null payload={"from":"server","text":"hello","recipient":"admin","time":"13:29:10"}
-
但控制台日志中没有打印任何消息。
如您所见,订阅和发送步骤中的 sessionid 是相同的。但我不明白为什么客户没有收到消息。请注意,没有用户目的地的消息正常工作。
谁能帮我一把?
【问题讨论】:
标签: java spring spring-websocket stomp