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 / [email protected]


On Fri, Feb 26, 2021 at 7:45 AM Alexander Farber <[email protected]>
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
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to