我如何在我的 websocket 龙卷风中获得动态网址?
Posted
技术标签:
【中文标题】我如何在我的 websocket 龙卷风中获得动态网址?【英文标题】:How i get a dynamic url in my websocket tornado? 【发布时间】:2018-07-27 14:27:19 【问题描述】:如何在我的websocket中获取js传递的动态url,是否需要它通过参数传递给今天没有收到任何东西但将来会收到的pc.connect()类?
网络套接字:
class MyWebSocketHandler(websocket.WebSocketHandler):
def allow_draft76(self):
# for ios 5.0 Safari
return True
def check_origin(self, origin):
return True
def open(self, *args, **kwargs):
self.application.pc.add_event_listener(self)
print ("WebSocket opened")
def on_close(self):
print ("WebSocket closed")
self.application.pc.remove_event_listener(self)
def main():
parse_command_line()
aplication = tornado.web.Application([
(r'.*', MyWebSocketHandler)
])
pc = PikaClient(io_loop)
aplication.pc = pc
aplication.pc.connect()
aplication.listen(8081)
io_loop.start()
if __name__ == '__main__':
main()
html:
const websocket = new WebSocket('ws://192.168.99.100:8081/$this.$route.params.uri')
【问题讨论】:
How can I implement multiple URL parameters in a Tornado route?的可能重复 没有办法在main函数中获取路径信息吗?在他谈到在处理程序类中拾取的主题中 【参考方案1】:在应用程序中,像这样定义路由:
(r'/(.*)', MyWebSocketHandler),
括号定义了一个捕获组,它将作为args[0]
传递给open()
。
还请注意,allow_draft76
方法已在 Tornado 4.0 中删除,因此不再有任何理由在您的处理程序中包含此方法。
【讨论】:
但是我如何在没有全局变量的情况下将 args[0] 放在我的类 PikaClient 中?我需要用这个参数构造我的 mq。 那么你需要在MyWebSocketHandler.open
而不是main
中创建你的PikaClient。以上是关于我如何在我的 websocket 龙卷风中获得动态网址?的主要内容,如果未能解决你的问题,请参考以下文章