The webocket protocol states that a reason can be given by the endpoint, when sending a closing frame. It should be a two byte code (1000 for "everything is fine") followed by an optional utf-8 encoded message. Python's websockets server generates an error, when no code is sent, assuming something went wrong.
It would be good to send a confirmation that closing was expected.
I could fix my issue by changing the "close frame.vi" as follows:

Download (valid until 2020-01-31)
I would recommend to make the Ring Menu into a Control and use it as an optional input. Then one can program a client that automatically closes the connection with the correct error code, when e.g. a binary payload instead of an expected text payload is received.
The webocket protocol states that a reason can be given by the endpoint, when sending a closing frame. It should be a two byte code (1000 for "everything is fine") followed by an optional utf-8 encoded message. Python's websockets server generates an error, when no code is sent, assuming something went wrong.

It would be good to send a confirmation that closing was expected.
I could fix my issue by changing the "close frame.vi" as follows:
Download (valid until 2020-01-31)
I would recommend to make the Ring Menu into a Control and use it as an optional input. Then one can program a client that automatically closes the connection with the correct error code, when e.g. a binary payload instead of an expected text payload is received.