如何将WebSocket和处理程序添加到正在运行的tornado服务器?

如何将WebSocket和处理程序添加到正在运行的tornado服务器?,websocket,request,add,tornado,dynamically-generated,Websocket,Request,Add,Tornado,Dynamically Generated,我正在尝试构建一个tornado应用程序,客户端可以通过对communicator websocket的请求来注册自己 当通信器收到创建新处理程序的请求时,应将websocket添加到服务器。新的websocket是ClientWebSocketHandler的一个集成 如何正确使用函数add_handlers()。 Web服务器如何获得有关新连接的信息? 你知道我遗漏了什么吗? 是否有一种标准的方法可以动态创建更多的处理程序和WebSocket class Communicator(torna

我正在尝试构建一个tornado应用程序,客户端可以通过对communicator websocket的请求来注册自己

当通信器收到创建新处理程序的请求时,应将websocket添加到服务器。新的websocket是ClientWebSocketHandler的一个集成

如何正确使用函数add_handlers()。 Web服务器如何获得有关新连接的信息? 你知道我遗漏了什么吗? 是否有一种标准的方法可以动态创建更多的处理程序和WebSocket

class Communicator(tornado.websocket.WebSocketHandler):
    def initialize(self):
        print('communicator initialized')
    def open(self):
        print('communicator ready to receive messages')
    def on_message(self, msg):
        print('msg received: ' + msg)
        self.create_socket()
    def on_close(self):
        print('communicator closed')
    def create_socket(self):
        self.application.add_handlers(
        host_pattern = r'/',
        host_handlers = [
            (r'/clients/123', ClientWebsocketHandler),
        ]
    )

class Application(tornado.web.Application):
def __init__(self):
    settings = SWIFT_SERVER_SETTINGS
    handlers = [
        (r'/', IndexPageHandler),
        (r'/', tornado.web.StaticFileHandler, dict(path=settings['static_path'])),
        # (r'/clients/123', ClientWebsocketHandler),
        (r'/com', Communicator),
    ]
    tornado.web.Application.__init__(self, handlers, **settings)

您不需要该函数,请将代码更改为

clients=[]
class Communicator(websocket.WebSocketHandler):
    def check_origin(self, origin):
        return True

    def open(self):
         clients.append(self)
    def on_message(self, message):
          print self,message
          #return message
          self.write_message(message)
    def on_close(self):
          clients.remove(self)

我将客户端对象添加到全局变量中,以便以后或在另一个函数中,您可以搜索该对象并向该客户端写入消息。

我尝试按照以下提示:[link]操作,但似乎没有对主机和WebSocket列表做任何操作。