import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.nio.ByteBuffer;
import java.util.concurrent.CompletionStage;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MyWebSocketClient {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
WebSocket webSocket = client.newWebSocketBuilder()
.buildAsync(URI.create("wss://example.com/socket"))
.join();
webSocket.sendText("Hello, Server!", true);
webSocket.sendClose(WebSocket.NORMAL_CLOSURE, "Client closed the connection");
webSocket.addListener(new WebSocket.Listener() {
@Override
public CompletionStage<?> onText(WebSocket webSocket, CharSequence data, boolean last) {
System.out.println("Received message from server: " + data);
return null;
}
@Override
public CompletionStage<?> onClose(WebSocket webSocket, int statusCode, String reason) {
System.out.println("Connection closed by server. Status code: " + statusCode + ", Reason: " + reason);
return null;
}
@Override
public void onError(WebSocket webSocket, Throwable error) {
Logger.getLogger(MyWebSocketClient.class.getName()).log(Level.SEVERE, null, error);
}
});
}
}