我正在构建一个spring-websocket应用程序,该应用程序当前通过STOMP协议(protocol)将RabbitMQ用作消息代理。我们组织的其余部分大多将IBM Websphere MQ用作消息代理,因此我们希望将其转换为RabbitMQ。但是,Websphere MQ不支持STOMP协议(protocol),这是spring-websocket的默认协议(protocol)。 MQTT似乎是最容易使用的支持协议(protocol)。理想情况下,我们的前端Web客户端将继续使用STOMP,但如果需要,我也可以将其迁移到MQTT。

我需要重写哪些类才能通过MQTT而不是STOMP与代理建立spring-websocket接口(interface)? This article提供了一些我应该扩展AbstractMessageBrokerConfiguration的一般指导,但是我不清楚从哪里开始。

当前,我正在使用标准配置方法:registry.enableStompBrokerRelay中的registerStompEndpointsAbstractWebSocketMessageBrokerConfigurer

最佳答案

瑞安(Ryan)有一些很好的建议。

主要工作将是用MqttBrokerMessageHandler创建StompBrokerRelayMessageHandler的替代品,该MqttBrokerMessageHandler不仅与MQTT代理进行对话,还使客户端STOMP框架适应MQTT,反之亦然。协议(protocol)足够相似,因此有可能找到共同点,但是直到尝试,您才知道。

请注意,我们确实已经计划了对MQTT支持https://jira.spring.io/browse/SPR-12581的支持,但是关键问题是,Web上的后备支持所必需的SockJS不支持二进制消息。

关于rabbitmq - 如何修改spring-websocket以通过MQTT而不是STOMP与代理接口(interface)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33267771/

10-10 06:41