Spring boot应用程序通过WebSocket在网页上显示JMS消息
我需要一个简单的spring boot web应用程序,它可以侦听JMS队列上的消息,到达时应该通过WebSocket显示在网页上 我搜索了一些例子,发现了几个单独的例子;WebSocket或JMS,我已经自己测试过了,但没有成功地将它们连接在一起 我已经搜索了一个示例,但没有找到任何示例。在我看来,这应该很容易,因为这是一个非常基本的要求 您知道通过WebSocket显示JMS和HTML的任何示例吗?您可以分享这些示例,或者为我提供一些提示或帮助来解决这些问题? 您可以编写Spring boot应用程序通过WebSocket在网页上显示JMS消息,websocket,jms,spring-boot,stomp,sockjs,Websocket,Jms,Spring Boot,Stomp,Sockjs,我需要一个简单的spring boot web应用程序,它可以侦听JMS队列上的消息,到达时应该通过WebSocket显示在网页上 我搜索了一些例子,发现了几个单独的例子;WebSocket或JMS,我已经自己测试过了,但没有成功地将它们连接在一起 我已经搜索了一个示例,但没有找到任何示例。在我看来,这应该很容易,因为这是一个非常基本的要求 您知道通过WebSocket显示JMS和HTML的任何示例吗?您可以分享这些示例,或者为我提供一些提示或帮助来解决这些问题? 您可以编写从JMS队列读取消息
从JMS队列读取消息并将它们转发到
。其中最后一个只向连接的WebSocket会话发送消息
有关此问题,请参见以下Spring集成示例:
更新
要将消息发送到所有订阅的WebSocket会话,您应该执行以下操作:
<int:splitter input-channel="enricheMessage" output-channel="sendMessage" apply-sequence="false">
<int-groovy:script>
@serverWebSocketContainer.sessions.keySet().collect {
org.springframework.integration.support.MessageBuilder.withPayload(payload)
.copyHeaders(headers)
.setHeader('simpSessionId', it)
.build()
}
</int-groovy:script>
</int:splitter>
@serverWebSocketContainer.sessions.keySet().collect{
org.springframework.integration.support.MessageBuilder.withPayload(有效载荷)
.CopyHeader(标题)
.setHeader('simpSessionId',it)
.build()
}
使用这个Groovy脚本,我从
serverWebSocketContainer
(所有连接的客户端)检索会话ID
,对它们进行迭代以构建消息,通过它们的websocket发送它们。最后,一个接一个地发送到
。谢谢,这似乎是一种方式,但不幸的是,我无法让它工作。我已经将这两个示例合并在一起,它可以工作,而且我还能够将JMS消息负载路由到WebSocket bean(例如headerEnricherChannel),但它抱怨会话id错误,并且似乎将负载用作会话id。我想向所有客户机广播相同的消息。有什么想法吗?