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.events.KraSocketClientEventInitiater;
import earth.krakatao.protocol.KraSocketClientProtocol; import earth.krakatao.protocol.KraSocketClientProtocol;
import earth.krakatao.protocol.KraSocketClientProtocolDest;
import earth.krakatao.protocol.KraSocketClientProtocolMessage; import earth.krakatao.protocol.KraSocketClientProtocolMessage;
import earth.krakatao.protocol.KraSocketClientProtocolStatus; import earth.krakatao.protocol.KraSocketClientProtocolStatus;
import java.net.URI; import java.net.URI;
@ -11,6 +12,7 @@ import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import java.util.UUID; import java.util.UUID;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import org.java_websocket.client.WebSocketClient; import org.java_websocket.client.WebSocketClient;
import org.java_websocket.exceptions.WebsocketNotConnectedException; import org.java_websocket.exceptions.WebsocketNotConnectedException;
import org.java_websocket.handshake.ServerHandshake; import org.java_websocket.handshake.ServerHandshake;
@ -23,6 +25,9 @@ public class SocketClient extends WebSocketClient {
@Getter @Getter
private final List<Long> webSocketAckTimeouts; private final List<Long> webSocketAckTimeouts;
private Timer timer; private Timer timer;
@Getter
@Setter
private int dest;
public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater, public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater,
KraSocketClientProtocol kraProtocol, List<Long> webSocketAckTimeouts) { KraSocketClientProtocol kraProtocol, List<Long> webSocketAckTimeouts) {
@ -31,6 +36,7 @@ public class SocketClient extends WebSocketClient {
this.kraSocketClientEventInitiater = kraSocketClientEventInitiater; this.kraSocketClientEventInitiater = kraSocketClientEventInitiater;
this.kraProtocol = kraProtocol; this.kraProtocol = kraProtocol;
this.webSocketAckTimeouts = webSocketAckTimeouts; this.webSocketAckTimeouts = webSocketAckTimeouts;
this.dest = 0;
} }
public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) { public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
@ -106,6 +112,19 @@ public class SocketClient extends WebSocketClient {
this.kraProtocol.getReceivedQueueMessages() this.kraProtocol.getReceivedQueueMessages()
.put(kraProtocolMessage.getCmdID(), kraProtocolMessage); .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); this.kraSocketClientEventInitiater.callOnMessage(kraProtocolMessage);