如何将WebSocket和处理程序添加到正在运行的tornado服务器?
我正在尝试构建一个tornado应用程序,客户端可以通过对communicator websocket的请求来注册自己 当通信器收到创建新处理程序的请求时,应将websocket添加到服务器。新的websocket是ClientWebSocketHandler的一个集成 如何正确使用函数add_handlers()。 Web服务器如何获得有关新连接的信息? 你知道我遗漏了什么吗? 是否有一种标准的方法可以动态创建更多的处理程序和WebSocket如何将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
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列表做任何操作。