Spring 应用服务器通过websocket向客户端传输数据

Spring application server to client data transmission via websocket

问题:在支持服务器的 java 应用程序中,是否可以在 spring 中使用 websocket 将数据从服务器发送到客户端,而无需创建另一个客户端?

互联网上几乎所有关于 websocket 的文章都在 spring 中展示了如何在控制器中定义处理请求的方法。当他们使用 @MessageMapping("/news") 和 @SendTo("/topic/news") 这两个注释定义一个函数时,所有的魔法似乎都会发生。据我所知,单独使用此方法只能捕获请求并进一步发送它们 (SendTo)。我想知道是否可以将数据从服务器发送到客户端而无需客户端首先请求某些东西。以及该代码的样子。

您可以使用 SimpMessagingTemplate 。

我想你应该把这个class放在某个地方

 @Configuration
 @EnableWebSocketMessageBroker
 public class "yournameclass" extends AbstractWebSocketMessageBrokerConfigurer

然后这个方法里面

@Override
public void configureMessageBroker(MessageBrokerRegistry configuration) {
    configuration.enableSimpleBroker("/test");
    configuration.setApplicationDestinationPrefixes("/someprefix"); 
}

然后你可以从你的代码中的某个方法调用它

@Autowired
private SimpMessagingTemplate template;


public void "mymethodsender" ()
{  this.template.convertAndSend("/test/somepathwhereyouregisteredyourclienttoreceivemessages", "messageobject");
}