【发布时间】:2017-07-10 09:37:16
【问题描述】:
我正在尝试构建一个 tornado 应用程序,客户端可以通过对通信器 websocket 的请求来注册自己。
当通信器收到创建新处理程序的请求时,应将 websocket 添加到服务器。新的 websocket 是 ClientWebSocketHandler 的一个实例。
如何正确使用函数 add_handlers()。 网络服务器如何获知新连接? 有什么想法我在这里想念的吗? 是否有动态创建更多处理程序和 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)
【问题讨论】:
-
我试图遵循这个提示:[link] stackoverflow.com/questions/31802664/… 但我似乎没有对主机和 websockets 列表做任何事情。
标签: websocket request add tornado dynamically-generated