javanetwork-programmingwebsocketjava-8tyrus

minimal java8 nio secure websocket client (wss)


I've spent quite some time to find simple java websocket client that could work with wss and wont be a mess...

I've tried https://github.com/TooTallNate/Java-WebSocket

added dependency as he descirbes, copied the SSLClientExample.java to test it with websocket.org echo server, but got compile error at line 84 no such method setSocket()... (stuck here)

I tried tyrus (seems this is a big library developed directly by oracle) but it seems i need to have some appserver running (websocket container) to be able to use it...

I wonder whats so difficult about websockets that one needs to have netty or glassfish or grizly for that?

I think its possible to implement one using SSLEngine (wss) and pure java sdk... is there something i dont know about websockets? ( i imagine it very much like ordinary sockets)


Solution

  • nv-websocket-client is a new WebSocket client library written in Java. It supports wss and requires just Java SE 1.5, so it can run even on Android.

    The size of nv-websocket-client-1.3.jar (released on 2015-05-06) is 62,854 bytes and it does not require any external dependencies.

    Below is a "wss" example.

    import com.neovisionaries.ws.client.*;
    
    public class HelloWSS
    {
        public static void main(String[] args) throws Exception
        {
            // Connect to "wss://echo.websocket.org" and send "Hello." to it.
            // When a response from the WebSocket server is received, the
            // WebSocket connection is closed.
            new WebSocketFactory()
                .createSocket("wss://echo.websocket.org")
                .addListener(new WebSocketAdapter() {
                    @Override
                    public void onTextMessage(WebSocket ws, String message) {
                        // Received a response. Print the received message.
                        System.out.println(message);
    
                        // Close the WebSocket connection.
                        ws.disconnect();
                    }
                })
                .connect()
                .sendText("Hello.");
        }
    }
    

    Blog
    WebSocket client library (Java SE 1.5+, Android)
    http://darutk-oboegaki.blogspot.jp/2015/05/websocket-client-library-java-se-15.html

    GitHub
    https://github.com/TakahikoKawasaki/nv-websocket-client

    JavaDoc
    http://takahikokawasaki.github.io/nv-websocket-client/

    Maven

    <dependency>
        <groupId>com.neovisionaries</groupId>
        <artifactId>nv-websocket-client</artifactId>
        <version>1.3</version>
    </dependency>