This commit is contained in:
@@ -11,6 +11,7 @@ import com.wentch.redkale.util.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.atomic.*;
|
||||
import java.util.logging.*;
|
||||
|
||||
/**
|
||||
@@ -19,6 +20,10 @@ import java.util.logging.*;
|
||||
*/
|
||||
public final class WebSocketEngine {
|
||||
|
||||
private static final AtomicInteger sequence = new AtomicInteger();
|
||||
|
||||
private final int index;
|
||||
|
||||
private final String engineid;
|
||||
|
||||
private final Map<Serializable, WebSocketGroup> containers = new ConcurrentHashMap<>();
|
||||
@@ -32,6 +37,7 @@ public final class WebSocketEngine {
|
||||
protected WebSocketEngine(String engineid, Logger logger) {
|
||||
this.engineid = engineid;
|
||||
this.logger = logger;
|
||||
this.index = sequence.getAndIncrement();
|
||||
this.finest = logger.isLoggable(Level.FINEST);
|
||||
}
|
||||
|
||||
@@ -44,10 +50,12 @@ public final class WebSocketEngine {
|
||||
t.setDaemon(true);
|
||||
return t;
|
||||
});
|
||||
long delay = (liveinterval - System.currentTimeMillis() / 1000 % liveinterval) + index * 5;
|
||||
scheduler.scheduleWithFixedDelay(() -> {
|
||||
getWebSocketGroups().stream().forEach(x -> x.sendEach(DEFAULT_PING_PACKET));
|
||||
}, (liveinterval - System.currentTimeMillis() / 1000 % liveinterval), liveinterval, TimeUnit.SECONDS);
|
||||
if (finest) logger.finest(this.getClass().getSimpleName() + "(" + engineid + ")" + " start keeplive(interval:" + liveinterval + "s) scheduler executor");
|
||||
if (finest) logger.finest(engineid + " ping...");
|
||||
}, delay, liveinterval, TimeUnit.SECONDS);
|
||||
if (finest) logger.finest(this.getClass().getSimpleName() + "(" + engineid + ")" + " start keeplive(delay:" + delay + ", interval:" + liveinterval + "s) scheduler executor");
|
||||
}
|
||||
|
||||
void add(WebSocket socket) {
|
||||
|
||||
Reference in New Issue
Block a user