a chat server that can communicate over websocket and TCP