I would just use a message queue server like RabbitMQ with a fanout exchange as each "chat room". You can see an example of using a fanout exchange in Python here. The Pika AMQP library works with Tornado, too.
The advantage with using a message queueing system is that you can have users connected to different Tornado processes on different servers while still being in the same "room", giving you high availability on the HTTP layer. RabbitMQ also has HA capabilities (although not the greatest).