当前位置: 首页 > 知识库问答 >
问题:

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

谷梁驰
2023-03-14

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

互联网上几乎所有关于spring中websocket的文章都展示了如何在控制器中定义方法来处理请求。当他们用两个注解@MessageMapping("/news ")、@SendTo("/topic/news ")定义一个函数时,所有的神奇似乎都发生了。单凭这个方法,据我所知,只能捕捉请求并进一步发送(SendTo)。我想知道是否有可能从服务器向客户机发送数据,而不首先让客户机请求某些东西。以及这些代码会是什么样子。

共有1个答案

汤飞
2023-03-14

您可以使用SimpMessagingTemplate。

我想你应该在某个地方上这门课

 @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");
}
 类似资料:
  • 问题内容: 我正在尝试在Java中的服务器和JavaScript客户端之间建立连接,但在客户端出现此错误: WebSocket与“ ws://127.0.0.1:4444 /”的连接失败:在收到握手响应之前,连接已关闭 由于可能从未调用该函数,因此它可能保持在OPENNING状态。该不会被调用。 有人可以让我知道这里出了什么问题吗? 服务器 服务器线程 游戏协议 客户 问题答案: 首先,您的两个代

  • 我使用Spring Boot开发了这个websocket服务器。服务器与基于js的客户机配合得很好。 控制器: 这是服务器端。现在,对于客户机,我已经创建了一个@ClientEndpoint,当我连接到URI“ws://localhost:8080/spring-mvc-java/chat”时,我能够建立一个连接,并且可以看到@ClientEndpoint的@OnOpen回调被触发。 但是,use

  • 尝试使用Express将参数从服务器端传递到Node.js中的客户端。 但到目前为止什么都没起作用。你们要怎么做?非常感谢你的帮助:)

  • 问题内容: 由于我是Web服务的新手,请您告诉我问题的答案。我的问题是 我想实现一个Web服务,当客户端调用此Web服务时,该服务会向客户端发送pdf文件。 请有人帮我提供一段不错的代码或解释。 现在可以请一个人解决我的错误。 12-23 09:42:48.429:调试/安装(32):DexInv:-开始’/data/app/vmdl33143.tmp’— 12-23 09:42:51.708:调

  • 我有一个来自http工具包的Websocket连接(Clojure,它工作得很好)。我从客户端发送ping以确保我们仍然保持连接,并且在那里一切正常。我的问题是,在这种情况下,人们是否会从服务器ping客户端? 我试图设置一些东西,如果我没有得到响应,就从服务器上删除频道,但是设置定时进程和改变状态来跟踪乒乓周期不是很方便,所以它变得有点难看。然后我就想,服务器能处理几十万个同时连接,我是不是就应