assignment of dest sent by the backend after the connection is established

master
Alex 2022-03-19 22:16:01 +01:00
parent 4481f7e14b
commit ef8c24bf73
1 changed files with 19 additions and 0 deletions

View File

@ -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<Long> webSocketAckTimeouts;
private Timer timer;
@Getter
@Setter
private int dest;
public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater,
KraSocketClientProtocol kraProtocol, List<Long> 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);