Browse Source

AckCallback.onTimeout should be invoked during shutdown state

master
Nikita 11 years ago
parent
commit
1e422f300d
  1. 4
      src/main/java/com/corundumstudio/socketio/ack/AckManager.java
  2. 1
      src/main/java/com/corundumstudio/socketio/transport/NamespaceClient.java

4
src/main/java/com/corundumstudio/socketio/ack/AckManager.java

@ -172,6 +172,10 @@ public class AckManager implements Disconnectable {
Set<Long> indexes = e.getAckIndexes();
for (Long index : indexes) {
AckCallback<?> callback = e.getAckCallback(index);
if (callback != null) {
callback.onTimeout();
}
SchedulerKey key = new AckSchedulerKey(Type.ACK_TIMEOUT, client.getSessionId(), index);
scheduler.cancel(key);
}

1
src/main/java/com/corundumstudio/socketio/transport/NamespaceClient.java

@ -104,6 +104,7 @@ public class NamespaceClient implements SocketIOClient {
@Override
public void send(Packet packet, AckCallback<?> ackCallback) {
if (!isConnected()) {
ackCallback.onTimeout();
return;
}
long index = baseClient.getAckManager().registerAck(getSessionId(), ackCallback);

Loading…
Cancel
Save