Implement separation of concurrent sessions
Currently, all logged in clients share the same session. This scales not very well and also prevents two parallel sessions to use different settings (samplingrate and blocksize).
The protocol (the messaging part) could be extended to introduce the concept of rooms. Rooms could have properties such as private/public. The list of public rooms could be queried by the client.
Also, some concept about lifetimes of rooms should be developed. A possibility is that rooms exist as long as clients are using them.