py:importloggingimportos.pathimportuuidimporttornado.httpserverimporttornado.ioloopimporttornado.optionsimporttornado.webimporttornado.websocketdefsend_message(message):forhandlerinChatSocketHandler.socket_handlers:try:handler.write_message(message)except:logging.error('Errorsendingmessage',exc_info=True)classMainHandler(tornado.web.RequestHandler):defget(self):self.render('index.html')classChatSocketHandler(tornado.websocket.WebSocketHandler):socket_handlers=set()num=0defopen(self):ChatSocketHandler.num=ChatSocketHandler.num+1name="name:%s"%ChatSocketHandler.numChatSocketHandler.socket_handlers.add(self)send_message('Anewuserhasenteredthechatroom.')defon_close(self):ChatSocketHandler.num=ChatSocketHandler.num-1ChatSocketHandler.socket_handlers.remove(self)send_message('Auserhasleftthechatroom.')defon_message(self,message):send_message(message)defmain():application=tornado.web.Application([('/',MainHandler),('/new-msg/socket',ChatSocketHandler)],debug=True)http_server=tornado.httpserver.HTTPServer(application)http_server.listen(8000)tornado.ioloop.IOLoop.instance().start()if__name__=='__main__':main()html:{{title}}helloworldsend