a simple chat room, using async IO