Add a websocket signaling server impl

PTAL
(Sorry for the previous abandoned requests. I'm new to the github work flow and messed up the repository)
I think removing messages should be moved into a separate cache.remove(roomId, clientId).