我正在使用websocket协议为web平台开发一个聊天模块,并将stomp作为消息协议。
这是我第一次使用任何消息代理,kafka是公司(我为之工作的公司)web平台上使用的,我猜是其他模块使用的。在我刚开始工作的时候,我曾经和rabbitmq一起工作过,现在我不得不转向Kafka。我在rabbitmq的网站上看到了一整篇关于如何使用stomp的文章,但在Kafka的官方网站上却没有这样的文章。
但是我已经研究了其他的一些资源,很多教程,我找不到任何与Kafka使用stomp协议相关的东西,这让我问是否可能?
下面是我的websocket配置类:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
//Here's the line I wrote to use Kafka as a MB, but doesn't work
registry.enableStompBrokerRelay("/topic").setRelayHost("localhost").setRelayPort(9092);
在启动kafka,然后运行我的javaspring应用程序之后,我从java.io.ioexception中得到一个“connectionreset by peer”,如果一切正常,就不应该抛出这个异常。
我使用kakfa的2.2.0版本,zookeeper的3.4.14版本,并使用sts3作为我的ide。
任何帮助都将不胜感激。
1条答案
按热度按时间gblwokeq1#
rabbitmq本机不支持stomp,但它有一个stomp插件;Kafka对跺脚没有内在的支持。