【问题标题】:Spring Boot + Websocket (SockJS)Spring Boot + Websocket (SockJS)
【发布时间】:2015-07-24 16:15:23
【问题描述】:
【问题讨论】:
标签:
java
spring
sockets
spring-mvc
【解决方案1】:
我的回答:
-
客户端不需要发送消息,但他们必须连接和订阅。我实际上是在浏览器连接和订阅然后开始发送消息的应用程序中自己做的。在服务器端,您可以使用 SimpMessagingTemplate 对象自动装配服务(或其他组件),然后使用 convertAndSend 系列函数将内容发送给特定用户或所有订阅者。如果您查看the portfolio project,您可以看到 price.stock 主题是如何完成的。客户端连接并订阅,服务器有一个预定的作业要发送给它。此服务使用 MessageSendingOperations 对象,但您可以使用上面提到的 SimpMessagingTemplate。我在我们的应用程序服务中有这段代码:
@Autowired
private SimpMessagingTemplate messagingTemplate;
...
messagingTemplate.convertAndSendToUser(userId, destination, jsonMessage);
This question 有一些关于查找所有用户的有用信息。如果需要,您似乎需要使用Spring documentation on STOMP context events 中定义的事件来自己跟踪事情。通常,由于这是订阅模式,您可能不需要知道谁已连接。您还可以构建自己的主题,向所有客户发送请求以响应并查找他们的帖子。我自己没有这样做,但罗森(评论者之一)是该项目的主要作者之一,所以我相信他!
希望这会有所帮助。告诉我。