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

importjava.net.InetSocketAddress;
importjava.nio.ByteBuffer;
importorg.java_websocket.WebSocket;
importorg.java_websocket.handshake.ClientHandshake;
importorg.java_websocket.server.WebSocketServer;
publicclassSimpleServerextendsWebSocketServer {
publicSimpleServer(InetSocketAddressaddress) {
super(address);
}
@OverridepublicvoidonOpen(WebSocketconn, ClientHandshakehandshake) {
conn.send("Welcome to the server!"); //This method sends a message to the new clientbroadcast( "new connection: " + handshake.getResourceDescriptor() ); //This method sends a message to all clients connectedSystem.out.println("new connection to " + conn.getRemoteSocketAddress());
}
@OverridepublicvoidonClose(WebSocketconn, intcode, Stringreason, booleanremote) {
System.out.println("closed " + conn.getRemoteSocketAddress() + " with exit code " + code + " additional info: " + reason);
}
@OverridepublicvoidonMessage(WebSocketconn, Stringmessage) {
System.out.println("received message from "	+ conn.getRemoteSocketAddress() + ": " + message);
}
@OverridepublicvoidonMessage( WebSocketconn, ByteBuffermessage ) {
System.out.println("received ByteBuffer from "	+ conn.getRemoteSocketAddress());
}
@OverridepublicvoidonError(WebSocketconn, Exceptionex) {
System.err.println("an error occurred on connection " + conn.getRemoteSocketAddress() + ":" + ex);
}
@OverridepublicvoidonStart() {
System.out.println("server started successfully");
}
publicstaticvoidmain(String[] args) {
Stringhost = "localhost";
intport = 8887;
WebSocketServerserver = newSimpleServer(newInetSocketAddress(host, port));
server.run();
}
}

Client Example

importjava.net.URI;
importjava.net.URISyntaxException;
importjava.nio.ByteBuffer;
importorg.java_websocket.client.WebSocketClient;
importorg.java_websocket.drafts.Draft;
importorg.java_websocket.drafts.Draft_6455;
importorg.java_websocket.handshake.ServerHandshake;
publicclassEmptyClientextendsWebSocketClient {
publicEmptyClient(URIserverUri, Draftdraft) {
super(serverUri, draft);
}
publicEmptyClient(URIserverURI) {
super(serverURI);
}
@OverridepublicvoidonOpen(ServerHandshakehandshakedata) {
send("Hello, it is me. Mario :)");
System.out.println("new connection opened");
}
@OverridepublicvoidonClose(intcode, Stringreason, booleanremote) {
System.out.println("closed with exit code " + code + " additional info: " + reason);
}
@OverridepublicvoidonMessage(Stringmessage) {
System.out.println("received message: " + message);
}
@OverridepublicvoidonMessage(ByteBuffermessage) {
System.out.println("received ByteBuffer");
}
@OverridepublicvoidonError(Exceptionex) {
System.err.println("an error occurred:" + ex);
}
publicstaticvoidmain(String[] args) throwsURISyntaxException { WebSocketClientclient = newEmptyClient(newURI("ws://localhost:8887"));
client.connect();
}
}

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

ExampleClientc = newExampleClient( newURI( "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