【问题标题】:Spring Boot + Websocket (SockJS)Spring Boot + Websocket (SockJS)
【发布时间】:2015-07-24 16:15:23
【问题描述】:

我正在尝试创建一个服务器,以便在发生更改时通知连接的客户端。 为此,我将 Spring Boot 用于服务器。为了传递通知,每个客户端都与服务器建立一个套接字。 我使用了本指南:https://spring.io/guides/gs/messaging-stomp-websocket/,它运行良好。在此示例中,客户端通过套接字发送消息,服务器响应。

  1. 问题是我找不到服务器向客户端发送消息而不让客户端先发送消息的方式!
  2. 是否可以列出所有连接的 websocket ?

谢谢,

【问题讨论】:

    标签: java spring sockets spring-mvc


    【解决方案1】:

    我的回答:

    1. 客户端不需要发送消息,但他们必须连接和订阅。我实际上是在浏览器连接和订阅然后开始发送消息的应用程序中自己做的。在服务器端,您可以使用 SimpMessagingTemplate 对象自动装配服务(或其他组件),然后使用 convertAndSend 系列函数将内容发送给特定用户或所有订阅者。如果您查看the portfolio project,您可以看到 price.stock 主题是如何完成的。客户端连接并订阅,服务器有一个预定的作业要发送给它。此服务使用 MessageSendingOperations 对象,但您可以使用上面提到的 SimpMessagingTemplate。我在我们的应用程序服务中有这段代码:

      @Autowired
      private SimpMessagingTemplate messagingTemplate;
      
      ...
      messagingTemplate.convertAndSendToUser(userId, destination, jsonMessage);
      
    2. This question 有一些关于查找所有用户的有用信息。如果需要,您似乎需要使用Spring documentation on STOMP context events 中定义的事件来自己跟踪事情。通常,由于这是订阅模式,您可能不需要知道谁已连接。您还可以构建自己的主题,向所有客户发送请求以响应并查找他们的帖子。我自己没有这样做,但罗森(评论者之一)是该项目的主要作者之一,所以我相信他!

    希望这会有所帮助。告诉我。

    【讨论】:

      猜你喜欢
      • 2021-08-27
      • 2021-07-13
      • 2017-06-05
      • 2016-11-09
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      相关资源
      最近更新 更多