added timer task for ack message handling
parent
384a986563
commit
cb20cca48a
|
@ -0,0 +1,12 @@
|
||||||
|
package earth.krakatao;
|
||||||
|
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
public class KraSocketClientMessageTimerTask extends TimerTask {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
KraSocketClient.getLogger().info("MessageTimerTask is running");
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,8 @@ import earth.krakatao.protocol.KraSocketClientProtocolMessage;
|
||||||
import earth.krakatao.protocol.KraSocketClientProtocolStatus;
|
import earth.krakatao.protocol.KraSocketClientProtocolStatus;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
import org.java_websocket.client.WebSocketClient;
|
import org.java_websocket.client.WebSocketClient;
|
||||||
import org.java_websocket.handshake.ServerHandshake;
|
import org.java_websocket.handshake.ServerHandshake;
|
||||||
|
|
||||||
|
@ -13,6 +15,8 @@ public class SocketClient extends WebSocketClient {
|
||||||
|
|
||||||
private final KraSocketClientProtocol kraProtocol;
|
private final KraSocketClientProtocol kraProtocol;
|
||||||
private final KraSocketClientEventInitiater kraSocketClientEventInitiater;
|
private final KraSocketClientEventInitiater kraSocketClientEventInitiater;
|
||||||
|
private final TimerTask timerTask;
|
||||||
|
private Timer timer;
|
||||||
|
|
||||||
public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater,
|
public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater,
|
||||||
KraSocketClientProtocol kraProtocol) {
|
KraSocketClientProtocol kraProtocol) {
|
||||||
|
@ -20,6 +24,8 @@ public class SocketClient extends WebSocketClient {
|
||||||
|
|
||||||
this.kraSocketClientEventInitiater = kraSocketClientEventInitiater;
|
this.kraSocketClientEventInitiater = kraSocketClientEventInitiater;
|
||||||
this.kraProtocol = kraProtocol;
|
this.kraProtocol = kraProtocol;
|
||||||
|
|
||||||
|
this.timerTask = new KraSocketClientMessageTimerTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
|
public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
|
||||||
|
@ -37,6 +43,9 @@ public class SocketClient extends WebSocketClient {
|
||||||
public void onOpen(ServerHandshake serverHandshake) {
|
public void onOpen(ServerHandshake serverHandshake) {
|
||||||
this.kraSocketClientEventInitiater.callOnOpen(serverHandshake);
|
this.kraSocketClientEventInitiater.callOnOpen(serverHandshake);
|
||||||
KraSocketClient.getLogger().info("connection opened");
|
KraSocketClient.getLogger().info("connection opened");
|
||||||
|
|
||||||
|
this.timer = new Timer(true);
|
||||||
|
this.timer.scheduleAtFixedRate(timerTask, 0, 3 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -83,6 +92,8 @@ public class SocketClient extends WebSocketClient {
|
||||||
this.kraSocketClientEventInitiater.callOnClose(code, reason, remote);
|
this.kraSocketClientEventInitiater.callOnClose(code, reason, remote);
|
||||||
KraSocketClient.logger.warning(
|
KraSocketClient.logger.warning(
|
||||||
"connection closed. Code: " + code + " reason: " + reason + " remote: " + remote);
|
"connection closed. Code: " + code + " reason: " + reason + " remote: " + remote);
|
||||||
|
|
||||||
|
this.timer.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,10 +10,7 @@ import java.util.function.Consumer;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
public class KraSocketClientProtocol {
|
public class KraSocketClientProtocol {
|
||||||
|
|
||||||
//@Getter
|
|
||||||
//ArrayList<Integer> cmdIDs = new ArrayList<>();
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final ArrayList<Integer> cmdIDs;
|
private final ArrayList<Integer> cmdIDs;
|
||||||
@Getter
|
@Getter
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
package earth.krakatao.protocol;
|
package earth.krakatao.protocol;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Getter
|
@Getter
|
||||||
public class KraSocketClientProtocolMessage {
|
public class KraSocketClientProtocolMessage {
|
||||||
|
|
||||||
|
@ -13,6 +12,23 @@ public class KraSocketClientProtocolMessage {
|
||||||
private final String uuid;
|
private final String uuid;
|
||||||
private final short cmdNumber;
|
private final short cmdNumber;
|
||||||
private final String args;
|
private final String args;
|
||||||
|
@Setter
|
||||||
|
private int trySendCount;
|
||||||
|
@Setter
|
||||||
|
private long time;
|
||||||
|
|
||||||
|
public KraSocketClientProtocolMessage(byte status, int cmdID, int dest, String uuid,
|
||||||
|
short cmdNumber, String args) {
|
||||||
|
this.status = status;
|
||||||
|
this.cmdID = cmdID;
|
||||||
|
this.dest = dest;
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.cmdNumber = cmdNumber;
|
||||||
|
this.args = args;
|
||||||
|
|
||||||
|
this.trySendCount = 0;
|
||||||
|
this.time = System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
public int getStatus() {
|
public int getStatus() {
|
||||||
return Byte.toUnsignedInt(status);
|
return Byte.toUnsignedInt(status);
|
||||||
|
|
Loading…
Reference in New Issue