- Notifications
You must be signed in to change notification settings - Fork 2.6k
Noah Andrews edited this page Sep 15, 2022 · 24 revisions
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)
If you have any questions, please check out the FAQ-page.
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()} }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.
You can find additional examples here.