From ac2fc84a9a08f65fa0aa3ac7c9f2cf1f3cdfe426 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 5 May 2023 00:54:20 -0700 Subject: [PATCH] Improve WebSocket `Provider` interface (#7915) Improve `Provider` interface --- core/src/main/java/jenkins/websocket/WebSocketSession.java | 3 ++- .../src/main/java/jenkins/websocket/Jetty10Provider.java | 4 ++-- websocket/spi/src/main/java/jenkins/websocket/Provider.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) 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;