introduce Message type
avoid goroutine stack for slowly client.
introduce Client interface.
introduce Room interface
simple test for room.
the handle func become Client.Join