gpt4 book ai didi

java - Spring WebSocket ConvertAndSendToUser 不工作但 convertAndSend 工作

转载 作者:行者123 更新时间:2023-12-04 09:38:08 24 4
gpt4 key购买 nike

我是 Spring boot websocket 和消息传递语义的新手。目前我可以使用以下代码发送私有(private)消息。

String queueName = "/user/" + username  + "/queue/wishes";
simpMessagingTemplate.convertAndSend(queueName, message);

当尝试使用 convertAndSendToUser 时,我没有收到任何错误,但没有发送消息。我知道使用 sendToUser 时,目标名称的构成方式应该略有不同,但我没弄对。

String queueName = "/user/queue/wishes";
simpMessagingTemplate.convertAndSendToUser(username, queueName, message);

下面是我的订阅代码。

stompClient.subscribe('/user/queue/wishes', function(message) {
alert(message);
})

最佳答案

我有一个类似的问题,如果你的 username 实际上是一个 sessionId,那么尝试使用一种接受 header 的重载方法(在 SimpMessageSendingOperations 中说)文档):

SimpMessageHeaderAccessor headerAccessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
headerAccessor.setSessionId(username);
headerAccessor.setLeaveMutable(true);

messagingTemplate.convertAndSendToUser(username, "/queue/wishes", message, headerAccessor.getMessageHeaders());

my example

关于java - Spring WebSocket ConvertAndSendToUser 不工作但 convertAndSend 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62456213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com