我可以通过websocket和rabbitmq向离线用户发送消息吗?

问题描述 投票:0回答:0

我正在开发基于 spring webscokets 的聊天。我正在使用 rabbitmq 作为代理。当我向订阅用户发送消息时,一切正常。但是永远不会向离线用户发送消息。正如我理解的那样,当使用 rabbitmq 订阅时默认情况下是持久的,消息应该在用户订阅后从队列中推出。但它在我的代码中确实是这样工作的。

花了一整天的时间试图找到解决方案。但对我来说没有任何效果。我错过了什么?

WebSocketConfig

 public void configureMessageBroker(MessageBrokerRegistry config) {

    config.setApplicationDestinationPrefixes("/app");

   config.setUserDestinationPrefix("/users");
    config
            .enableStompBrokerRelay("/topic","/queue")
            .setAutoStartup(true)
            .setRelayHost("localhost")
            .setRelayPort(61613)
            .setClientLogin("guest")
            .setClientPasscode("guest");
}

@MessageMapping("/聊天")

    messagingTemplate.convertAndSendToUser(recipient, "/queue/hello", message)

客户

spring websocket rabbitmq chat
© www.soinside.com 2019 - 2024. All rights reserved.