<acceptor name="stomp-acceptor"
factory-class="org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory">
<param name="protocols" value="STOMP" />
<param name="port" value="61613" />
</acceptor>
使用add-user.bat向application-users.properties添加一个新的应用程序用户guest/guest
添加以下StompConfiguration(缩写):
@Configuration
@EnableWebSocketMessageBroker
public class StompConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.setApplicationDestinationPrefixes("/app");
config.enableStompBrokerRelay("/topic", "/queue").setRelayHost("localhost").setRelayPort(61613)
.setClientLogin("guest").setClientPasscode("guest");
}
}
这在启动时似乎很有效:
template.convertAndSend(topic, payload);
错误[org.springframework.messaging.simp.stomp.stompbrokerrelaymessagehandler](reactor-tcp-io-1)收到错误{message=[amq339001:目的地不存在:/topic/abc/12345/xyz]}session=system
使用Stomp,不应该事先创建一个主题。我怎样才能告诉阿尔忒弥斯自动创建它?
在我的例子中,有两个问题导致了此错误消息:
1)第一个问题是主题的名称不是以“jms.topic”开头的,但Artemis似乎期望这样(无论出于什么原因...)。
通过将代码更改为
template.convertAndSend("jms.topic." + topic, payload);
config.enableStompBrokerRelay("jms.topic")
我有一个带sokjs套接字的节点应用程序。 一些HTML/JS客户端使用stomp over sock JS,但我不明白订阅是如何工作的: 客户端已连接,事件已记录,但范围为$scope。从不打电话通知。如何配置主题订阅? 编辑: 请注意,我一定清楚。 我使用sockjs模块作为websocket服务器。 没有太多的配置:
我正在使用Spring Boot。我想将JAX RS作为我的基本REST-API与WebSockets结合使用(使用Stomp)。然而,这两个图书馆似乎最终陷入了冲突。 我有以下WebSocketConfig: 以及以下AppConfig: 如果两个类都在。如果我注释掉AppConfig,我的套接字连接将没有任何问题。在其他情况下,我的REST-Api可以工作,但是无法建立web socket-C
根据Spring网站上的这个教程,我知道了如何使用Stomp和Spring4建立一个基于WebSocket的应用程序。在客户端,我们有: 在服务器端,控制器中有以下内容: 现在,我明白了确保如果消息发送到目标,那么将调用方法。由于订阅了,将消息发送回。 那么,有什么方法可以用Spring4、SockJS和没有跺脚的情况下做到这一点呢?还是Spring4WebSocket只支持stomp?
给定websocket配置: 和客户端JavaScript: 并从服务器发送此消息: 回调不会被激发。 javascript控制台显示已建立连接: 已连接到STOMP:已连接用户名:jschmoe心跳:0,0版本:1.1订阅ID:sub-0目标:/user/topic/abc 并且tomcat控制台显示: 正在处理订阅目的地=/topic/abc-useryl3ovhr2订阅ID=sub-0会话=
问题内容: 有没有一种方法可以将WebSocket与SockJS客户端和Spring 4服务器一起使用,而不能与STOMP一起使用? 基于Spring网站上的本教程,我知道如何使用Stomp和Spring 4设置基于WebSocket的应用程序。在客户端,我们有: 在服务器端,控制器中包含以下内容: 现在,我了解可以确保如果将消息发送到目的地,则将调用该方法。并且由于已订阅,因此会将邮件发送回。
我们正在将SpringWebSockets集成到我们的应用程序中,我运行了HelloWorld示例,令人惊讶的是,spring为我们连接了一切,以便将服务器端通知推送到客户端。 不过,我有一些简单的问题 1) 队列是如何创建的?我使用的是ActiveMQ,队列名称与我在目的地中指定的不同(例如,像greetings-user3n9\u jn3i)。 2)目标名称是否不同于队列? 3) 我正在使用A