Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] WebSocketListener.onWebSocketClose called numerous times

It's likely multiple connections from the same user / remote address.

Include the mSession.getRemoteAddress().getPort() in your output to confirm.
If it reports different ports, then that's definitely multiple connections being closed.

You can also create a unique "id" for every connection/session in your onWebSocketConnect() and report that in your LOG info line.

Joakim Erdfelt / joakim@xxxxxxxxxxx


On Fri, Feb 26, 2021 at 7:45 AM Alexander Farber <alexander.farber@xxxxxxxxx> wrote:
Hello,

I am using Jetty 9.4.35.v20201120 for a Websockets word game with 2000 users and while it works pretty stable, every minute or so I observe the following bursts in the log:

INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-937: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-953: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-953: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-937: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-953: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-937: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-937: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1001 reason=
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-937: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-953: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-757: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-929: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-756: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-938: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected
INFO:words:qtp100555887-951: onWebSocketClose: hostname=77.111.244.123 mUid=0 statusCode=1006 reason=Disconnected

I check the IP address (BTW I have changed it in the above log excerpt) - and it is a legit player, that is not some script kiddie.

Those bursts do not come for every user, but only for few of them.

Does anybody have an idea, what is happening?

Is it some nature of the Websockets protocol or some older browser/several browser tabs being opened? Or maybe the fact that I have haproxy 1.8.23 in front of the Jetty?

Below is my simple Java code and the excerpt from haproxy.cfg

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

    # for WebSocket connections
    timeout tunnel          1h
    timeout client-fin      1m

frontend slova_de
    bind 95.216.113.92:80
    bind 95.216.113.92:443 ssl crt /etc/pki/tls/certs/slova.de.pem no-sslv3
    http-request deny if { path_beg /xmlrpc.php }
    redirect scheme https if { hdr_end(host) -i slova.de } !{ ssl_fc }
    default_backend jetty_ru

backend jetty_ru
    server domain 127.0.0.1:8080 send-proxy

    @Override
    public void onWebSocketClose(int statusCode, String reason) {
        // getHostString does not use DNS resolving
        String hostname = (mSession == null ? "unknown" : mSession.getRemoteAddress().getHostString());
        LOG.info("onWebSocketClose: hostname={} mUid={} statusCode={} reason={}", hostname, mUid, statusCode, reason);
        disconnect();
    }

    @Override
    public void onWebSocketError(Throwable ex) {
        // getHostString does not use DNS resolving
        String hostname = (mSession == null ? "unknown" : mSession.getRemoteAddress().getHostString());
        LOG.warn("onWebSocketError: hostname={} mUid={} ex={}", hostname, mUid, ex);
        disconnect();
    }

Thank you for any input
Alex

_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users

Back to the top