簡體   English   中英

是否可以通過Spring WebSocket發送同步消息?

[英]Is it possible to send synchronous messages via Spring WebSocket?

我有一個Spring應用程序,它通過Spring WebSocket異步發送消息給另一台服務器。 但是對於特定情況我需要同步發送消息,我應該繼續使用來自服務器的傳入響應的過程。

我不想僅為此進程進行HTTP調用,因為已經有一個開放的TCP連接,我想使用它。

例如,在Tyrus WebSocket實現中,可以通過同步或異步發送消息

session.getBasicRemote().sendText(message);
session.getAsyncRemote().sendText(message);

相關的Tyrus文檔鏈接

順便說一句,我沒有像Spring WebSocket那樣使用像STOMP這樣的sub-protocol

您可以將自定義模式添加到需要回答的郵件中。

假設您要將表單服務器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!"

然后完成同步消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM