有可能通过Spring WebSocket发送同步消息吗?



我有一个Spring应用程序,它通过Spring WebSocket异步地向另一个服务器发送消息。但是对于需要同步发送消息的特定情况,我应该继续处理来自服务器的传入响应。

我不想只对这个进程进行HTTP调用,因为已经有一个打开的TCP连接,我想使用它。

例如,在Tyrus WebSocket实现中,可以通过

同步或异步发送消息
session.getBasicRemote().sendText(message);
session.getAsyncRemote().sendText(message);

相关Tyrus文档链接。

顺便说一句,我不使用像STOMP这样的sub-protocol与Spring WebSocket。

您可以为需要回复的消息添加自定义模式。

假设您想要发送表单服务器A到服务器B:

sendToB("REPLY ME!");

在实际发送消息之前,服务器A在其中放入一个自定义短语,如:

sendToB("REQUEST:1234" + "#$#" + "REPLY-ME!");

当服务器B收到消息时:

String[] parts = message.split("#$#");
if (parts.length > 0) {
    String[] keyValue = parts[0].split(":");
    sendToA("RESPONSE:" + keyValue[1] + "#$#" + "CALM DOWN!");
}

最后,服务器A接收到消息:

"RESPONSE:1234#$#CALM DOWN!"

同步消息完成

相关内容

  • 没有找到相关文章

最新更新