From 568e1cf62dcdb26955ce11844c2eb9a36737b957 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Tue, 20 Jun 2017 21:57:29 +0800 Subject: [PATCH] --- src/org/redkale/net/http/WebSocketEngine.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/net/http/WebSocketEngine.java b/src/org/redkale/net/http/WebSocketEngine.java index 970e71b4a..bda4a7c69 100644 --- a/src/org/redkale/net/http/WebSocketEngine.java +++ b/src/org/redkale/net/http/WebSocketEngine.java @@ -84,8 +84,10 @@ public final class WebSocketEngine { return t; }); long delay = (interval - System.currentTimeMillis() / 1000 % interval) + index * 5; + final int intervalms = interval * 1000; scheduler.scheduleWithFixedDelay(() -> { - getLocalWebSockets().forEach(x -> x.sendPing()); + long now = System.currentTimeMillis(); + getLocalWebSockets().stream().filter(x -> (now - x.getLastSendTime()) > intervalms).forEach(x -> x.sendPing()); }, delay, interval, TimeUnit.SECONDS); if (finest) logger.finest(this.getClass().getSimpleName() + "(" + engineid + ")" + " start keeplive(delay:" + delay + ", interval:" + interval + "s) scheduler executor"); }