Wrap a WebSocketSession
to guarantee only one thread can send messages at a time.

If a send is slow, subsequent attempts to send more messages from other threads
will not be able to acquire the flush lock and messages will be buffered instead.
At that time, the specified buffer-size limit and send-time limit will be checked
and the session will be closed if the limits are exceeded.

sendMessage

Note: The underlying standard WebSocket session (JSR-356) does
not allow concurrent sending. Therefore sending must be synchronized. To ensure
that, one option is to wrap the WebSocketSession with the
ConcurrentWebSocketSessionDecorator.