diff --git a/core/src/main/java/jenkins/websocket/WebSocketSession.java b/core/src/main/java/jenkins/websocket/WebSocketSession.java index 43c4bba482..0160985b7b 100644 --- a/core/src/main/java/jenkins/websocket/WebSocketSession.java +++ b/core/src/main/java/jenkins/websocket/WebSocketSession.java @@ -69,7 +69,8 @@ public abstract class WebSocketSession { if (PING_INTERVAL_SECONDS != 0) { pings = Timer.get().scheduleAtFixedRate(() -> { try { - handler.sendPing(ByteBuffer.wrap(new byte[0])); + Future f = handler.sendPing(ByteBuffer.wrap(new byte[0])); + // TODO do something interesting with the future } catch (Exception x) { error(x); pings.cancel(true); diff --git a/websocket/jetty10/src/main/java/jenkins/websocket/Jetty10Provider.java b/websocket/jetty10/src/main/java/jenkins/websocket/Jetty10Provider.java index 9b73ca0d91..b5243e627f 100644 --- a/websocket/jetty10/src/main/java/jenkins/websocket/Jetty10Provider.java +++ b/websocket/jetty10/src/main/java/jenkins/websocket/Jetty10Provider.java @@ -104,10 +104,10 @@ public class Jetty10Provider implements Provider { } @Override - public void sendPing(ByteBuffer applicationData) throws IOException { + public Future sendPing(ByteBuffer applicationData) throws IOException { CompletableFuture f = new CompletableFuture<>(); session().getRemote().sendPing(applicationData, new WriteCallbackImpl(f)); - // TODO return f; + return f; } @Override diff --git a/websocket/spi/src/main/java/jenkins/websocket/Provider.java b/websocket/spi/src/main/java/jenkins/websocket/Provider.java index 0d7c53aeb5..19f50f1eaf 100644 --- a/websocket/spi/src/main/java/jenkins/websocket/Provider.java +++ b/websocket/spi/src/main/java/jenkins/websocket/Provider.java @@ -69,7 +69,7 @@ interface Provider { Future sendText(String text) throws IOException; - void sendPing(ByteBuffer applicationData) throws IOException; + Future sendPing(ByteBuffer applicationData) throws IOException; void close() throws IOException;