From ef8c24bf736afc0a548d92f55d18a7ea7dcb271e Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 19 Mar 2022 22:16:01 +0100 Subject: [PATCH] assignment of dest sent by the backend after the connection is established --- .../java/earth/krakatao/SocketClient.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/earth/krakatao/SocketClient.java b/src/main/java/earth/krakatao/SocketClient.java index 8202cdf..0fca7b6 100644 --- a/src/main/java/earth/krakatao/SocketClient.java +++ b/src/main/java/earth/krakatao/SocketClient.java @@ -2,6 +2,7 @@ package earth.krakatao; import earth.krakatao.events.KraSocketClientEventInitiater; import earth.krakatao.protocol.KraSocketClientProtocol; +import earth.krakatao.protocol.KraSocketClientProtocolDest; import earth.krakatao.protocol.KraSocketClientProtocolMessage; import earth.krakatao.protocol.KraSocketClientProtocolStatus; import java.net.URI; @@ -11,6 +12,7 @@ import java.util.Timer; import java.util.TimerTask; import java.util.UUID; import lombok.Getter; +import lombok.Setter; import org.java_websocket.client.WebSocketClient; import org.java_websocket.exceptions.WebsocketNotConnectedException; import org.java_websocket.handshake.ServerHandshake; @@ -23,6 +25,9 @@ public class SocketClient extends WebSocketClient { @Getter private final List webSocketAckTimeouts; private Timer timer; + @Getter + @Setter + private int dest; public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater, KraSocketClientProtocol kraProtocol, List webSocketAckTimeouts) { @@ -31,6 +36,7 @@ public class SocketClient extends WebSocketClient { this.kraSocketClientEventInitiater = kraSocketClientEventInitiater; this.kraProtocol = kraProtocol; this.webSocketAckTimeouts = webSocketAckTimeouts; + this.dest = 0; } public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) { @@ -106,6 +112,19 @@ public class SocketClient extends WebSocketClient { this.kraProtocol.getReceivedQueueMessages() .put(kraProtocolMessage.getCmdID(), kraProtocolMessage); } + + // after the connection is established, the backend sends a Dest, which is assigned here + if (kraProtocolMessage.getCmdNumber() == 33767) { + KraSocketClient.getLogger().info("set dest to " + kraProtocolMessage.getArgs()); + + this.setDest(Integer.parseInt(kraProtocolMessage.getArgs())); + + this.getKraProtocol().replyThatWeReceivedAckMessage(this, this.getKraProtocol(), + kraProtocolMessage.getCmdID(), + KraSocketClientProtocolDest.BACKEND.getStatus(), + UUID.fromString("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"), + kraProtocolMessage.getCmdNumber()); + } } this.kraSocketClientEventInitiater.callOnMessage(kraProtocolMessage);