Class WebSocketClient

java.lang.Object
dev.onvoid.webrtc.examples.web.client.WebSocketClient

public class WebSocketClient extends Object
A WebSocket client implementation using JDK internal WebSockets (java.net.http.WebSocket). This client supports secure WebSocket connections (WSS), message sending/receiving, and automatic heartbeat to keep the connection alive.
Author:
Alex Andres
  • Constructor Details

    • WebSocketClient

      public WebSocketClient(URI serverUri, List<String> subprotocols)
      Creates a new WebSocket client.
      Parameters:
      serverUri - The URI of the WebSocket server (e.g., "wss://localhost:8443/ws").
      subprotocols - The WebSocket subprotocols to use (e.g., "ws-signaling").
    • WebSocketClient

      public WebSocketClient(URI serverUri, String subprotocol)
      Creates a new WebSocket client with a single subprotocol.
      Parameters:
      serverUri - The URI of the WebSocket server.
      subprotocol - The WebSocket subprotocol to use.
  • Method Details

    • connect

      public CompletableFuture<WebSocket> connect()
      Connects to the WebSocket server.
      Returns:
      A CompletableFuture that completes when the connection is established.
    • sendMessage

      public CompletableFuture<WebSocket> sendMessage(String message)
      Sends a text message to the WebSocket server.
      Parameters:
      message - The message to send.
      Returns:
      A CompletableFuture that completes when the message is sent.
    • disconnect

      public CompletableFuture<WebSocket> disconnect(int statusCode, String reason)
      Closes the WebSocket connection.
      Parameters:
      statusCode - The WebSocket close status code.
      reason - The reason for closing.
      Returns:
      A CompletableFuture that completes when the connection is closed.
    • addMessageListener

      public void addMessageListener(Consumer<String> listener)
      Adds a listener for incoming text messages.
      Parameters:
      listener - The message listener.
    • removeMessageListener

      public void removeMessageListener(Consumer<String> listener)
      Removes a message listener.
      Parameters:
      listener - The message listener to remove.
    • addCloseListener

      public void addCloseListener(Runnable listener)
      Adds a listener for connection close events.
      Parameters:
      listener - The close listener.
    • removeCloseListener

      public void removeCloseListener(Runnable listener)
      Removes a close listener.
      Parameters:
      listener - The close listener to remove.
    • addErrorListener

      public void addErrorListener(Consumer<Throwable> listener)
      Adds a listener for connection errors.
      Parameters:
      listener - The error listener.
    • removeErrorListener

      public void removeErrorListener(Consumer<Throwable> listener)
      Removes an error listener.
      Parameters:
      listener - The error listener to remove.
    • isConnected

      public boolean isConnected()
      Checks if the client is connected to the WebSocket server.
      Returns:
      true if connected, false otherwise.