我在使用Ajax和Websockets的项目上工作。任务是摆脱Ajax并仅使用Websockets。在服务器端,我正在使用龙卷风和django与tornado-url-dispatcher。我想使用websocket的单个实例(tornado.websocket.WebSocketHandler)重用已在django中定义的一些方法。这个类有3个默认处理程序但是我通过添加新的处理程序来扩展它,这些处理程序重定向到现有的django方法并修改了调度程序以指向新方法。
class WSHandler(tornado.websocket.WebSocketHandler):
def open(self):
...
def on_message(self, message):
...
def on_close(self):
...
def new_handler_1(self, request):
...
tornado_app = tornado.web.Application(
[
(r'/ws/new_handler', wshandler.WSHandler.new_handler_1),
(r'/ws', wshandler.WSHandler),
]
为了从new_handler_1方法回复通过websocket完成的请求,我应该使用什么类型的响应?感谢。
答案 0 :(得分:0)
你不能这样做;为每个请求创建一个新的处理程序类实例。相反,制作一些处理程序可以用来在它们之间进行通信的其他共享对象。您可以通过将此对象附加到Application对象或将其作为initialize
参数传递给处理程序来将此对象传递给处理程序。