通过RabbitMQ向Spring Websocket处理程序发送带有SockJS的消息

时间:2015-03-09 11:01:08

标签: spring grails websocket spring-messaging

我正在开发两个应用程序之间的消息代理通信:Grails客户端和Spring Boot微服务。 为了使我的客户端以长轮询方式更新,我使用了WebSockets。

我已成功配置Grails和Spring Boot以在RabbitMQ代理上使用Web套接字。 Grails客户端按预期从Spring Boot获取所有出版物。

但是我遇到了从Grails端的JS代码向服务器端的Spring Boot处理程序发送消息的问题。

我遵循以下所有默认配置:https://github.com/zyro23/grails-spring-websocket/blob/010ea1fb3557a63b6ce0d87a0b055f6cbc7df319/README.md

我以前在Spring Boot端编写的配置相同:

  @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableStompBrokerRelay("/topic", "/queue")
                .setRelayHost(brokerRelayHost)
                .setSystemLogin(brokerRelayUsername)
                .setSystemPasscode(brokerRelayPassword)
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/stomp").withSockJS()
    }

我的客户端代码调用:

client.send("/app/hello", {}, JSON.stringify("world"));

但是注释@MessageMapping("/hello")对我的Spring启动处理程序方法不起作用。

另一个奇怪的事情是,当我启用具有相同注释的Grails处理程序时,它们运行良好并接收所有消息。

我监控了RabbitMQ管理控制台,看起来好像Spring Boot处理程序客户端永远不会向代理发送消息。

是否有人发现跨应用程序Web套接字消息发送存在同样的问题?

提前致谢!

0 个答案:

没有答案