I know the httpserver module in tornado is implemented based on the tcpserver module, so I can  write a socket server based on tornado. But how can I write a server that is both a socket server and a web server?
For example, if I want to implement a chat app. A user can either login through a browser or a client program. The browser user can send msg to the client user through the back-end server. So the back-end server is a web and socket server.
You can start multiple servers that share an IOLoop within the same process. Your HTTPServer could listen on one port, and the TCPServer could listen on another.
How to use tornado as both a socket server and web server?