Skip to content
Noah Andrews edited this page Sep 15, 2022 · 24 revisions

Introduction

Using Java-Websocket is very similar to using javascript websockets: You simply take the client or the server class and override its abstract methods by putting your application logic in place.

These methods are

  • onOpen
  • onMessage
  • onClose
  • onError
  • onStart (just for the server)

FAQ

If you have any questions, please check out the FAQ-page.

Server Example

import java.net.InetSocketAddress; import java.nio.ByteBuffer; import org.java_websocket.WebSocket; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.server.WebSocketServer; public class SimpleServer extends WebSocketServer { public SimpleServer(InetSocketAddress address) { super(address);	} @Override public void onOpen(WebSocket conn, ClientHandshake handshake) { conn.send("Welcome to the server!"); //This method sends a message to the new client broadcast( "new connection: " + handshake.getResourceDescriptor() ); //This method sends a message to all clients connected System.out.println("new connection to " + conn.getRemoteSocketAddress());	} @Override public void onClose(WebSocket conn, int code, String reason, boolean remote) { System.out.println("closed " + conn.getRemoteSocketAddress() + " with exit code " + code + " additional info: " + reason);	} @Override public void onMessage(WebSocket conn, String message) { System.out.println("received message from "+ conn.getRemoteSocketAddress() + ": " + message);	} @Override public void onMessage( WebSocket conn, ByteBuffer message ) { System.out.println("received ByteBuffer from "+ conn.getRemoteSocketAddress());	} @Override public void onError(WebSocket conn, Exception ex) { System.err.println("an error occurred on connection " + conn.getRemoteSocketAddress() + ":" + ex);	} @Override public void onStart() { System.out.println("server started successfully");	} public static void main(String[] args) { String host = "localhost"; int port = 8887; WebSocketServer server = new SimpleServer(new InetSocketAddress(host, port)); server.run();	} }

Client Example

import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft; import org.java_websocket.drafts.Draft_6455; import org.java_websocket.handshake.ServerHandshake; public class EmptyClient extends WebSocketClient { public EmptyClient(URI serverUri, Draft draft) { super(serverUri, draft);	} public EmptyClient(URI serverURI) { super(serverURI);	} @Override public void onOpen(ServerHandshake handshakedata) { send("Hello, it is me. Mario :)"); System.out.println("new connection opened");	} @Override public void onClose(int code, String reason, boolean remote) { System.out.println("closed with exit code " + code + " additional info: " + reason);	} @Override public void onMessage(String message) { System.out.println("received message: " + message);	} @Override public void onMessage(ByteBuffer message) { System.out.println("received ByteBuffer");	} @Override public void onError(Exception ex) { System.err.println("an error occurred:" + ex);	} public static void main(String[] args) throws URISyntaxException { WebSocketClient client = new EmptyClient(new URI("ws://localhost:8887")); client.connect();	} }

To connect to a server with a normal signed certificate, you can do it this way as well!

ExampleClient c = new ExampleClient( new URI( "wss://echo.websocket.org" ) )

If you are using a self signed certificate, take a look at the SSLClientExample.java.

Additional Examples

You can find additional examples here.

Clone this wiki locally