Version: 9.4.32.v20200930 |

Using WebSocketListener
Previous | Chapter 27. Jetty Websocket API Home | Next

##### Contact the core Jetty developers at www.webtide.com

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development

## Using WebSocketListener

The basic form of a WebSocket using the `org.eclipse.jetty.websocket.api.WebSocketListener` for incoming events.

    //
    //  ========================================================================
    //  Copyright (c) 1995-2020 Mort Bay Consulting Pty Ltd and others.
    //  ------------------------------------------------------------------------
    //  All rights reserved. This program and the accompanying materials
    //  are made available under the terms of the Eclipse Public License v1.0
    //  and Apache License v2.0 which accompanies this distribution.
    //
    //      The Eclipse Public License is available at
    //      http://www.eclipse.org/legal/epl-v10.html
    //
    //      The Apache License v2.0 is available at
    //      http://www.opensource.org/licenses/apache2.0.php
    //
    //  You may elect to redistribute this code under either of these licenses.
    //  ========================================================================
    //

    package examples.echo;

    import org.eclipse.jetty.websocket.api.Session;
    import org.eclipse.jetty.websocket.api.WebSocketListener;

    /**
     * Example EchoSocket using Listener.
     */
    public class ListenerEchoSocket implements WebSocketListener
    {
        private Session outbound;

        @Override
        public void onWebSocketBinary(byte[] payload, int offset, int len)
        {
            /* only interested in text messages */
        }

        @Override
        public void onWebSocketClose(int statusCode, String reason)
        {
            this.outbound = null;
        }

        @Override
        public void onWebSocketConnect(Session session)
        {
            this.outbound = session;
        }

        @Override
        public void onWebSocketError(Throwable cause)
        {
            cause.printStackTrace(System.err);
        }

        @Override
        public void onWebSocketText(String message)
        {
            if ((outbound != null) && (outbound.isOpen()))
            {
                System.out.printf("Echoing back message [%s]%n", message);
                // echo the message back
                outbound.getRemote().sendString(message, null);
            }
        }
    }

This is by far the most basic and best performing (speed and memory wise) WebSocket implementation you can create. If the listener is too much work for you, you can instead opt for the WebSocketAdapter

Previous | Top | Next
Using WebSocket Annotations | Home | Using the WebSocketAdapter

See an error or something missing? Contribute to this documentation at Github!(Generated: 2020-09-30)