gpt4 book ai didi

java - STOMP Websocket同步通信使用Spring

转载 作者:行者123 更新时间:2023-11-30 10:21:31 26 4
gpt4 key购买 nike

我有一个要求是一些 STOMP websocket 连接需要同步处理。

意思是我有一个客户(spring)订阅了一个主题(“/topic”)。

我有一个服务器 (spring),它定义了代理 ("/topic") 也定义了处理程序 ("/app/hello")。

现在客户端可以向/app/hello 发送请求,然后等待响应,然后再向/app/hello 发送下一个请求。

  1. 如何在我的服务器上返回值(STOMP 规范说明了 RECEIPT 帧,但我认为这不是可以手动控制的东西)。
  2. 我如何在发送后等待我的客户端上的值。

最佳答案

要将 Java 客户端连接到 websocket 端点,您可以使用 tyrus reference implementationJSR356 - Websockets For Java .

基本上,您需要实现一个客户端端点 (javax.websocket.Endpoint) 和一个消息处理程序 (javax.websocket.MessageHandler)。在端点中,您在打开时向当前 session 注册消息处理程序:

public class ClientEndpoint extends Endpoint {
...

@Override
public void onOpen(final Session aSession, final EndpointConfig aConfig) {
aSession.addMessageHandler(yourMessageHandler);
}
}

要连接到服务器端点,您可以使用 ClientManager:

final ClientManager clientManager = ClientManager.createClient();
clientManager.connectToServer(clientEndpoint, config, uriToServerEndpoint);

如果服务器端点向主题发送内容,将调用消息处理程序的 onMessage 方法。

根据您的需要,您可以选择实现上述接口(interface)或使用相应的注解。

更新:STOMP website列出了 STOMP 协议(protocol)的几种实现。对于 Java 有 GozirraStampy .我没有使用这些框架的经验,但示例非常简单明了。

关于java - STOMP Websocket同步通信使用Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47828081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com