如何在websocket龙卷风中获得动态网址?

时间:2018-07-27 14:27:20

标签: python-3.x websocket tornado

如何获取由js在我的websocket中传递的动态网址,我是否需要通过参数将其传递给pc.connect()类,该类今天什么都不会收到,但将来会收到?

weboocket:

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}')

1 个答案:

答案 0 :(得分:0)

在应用程序中,如下定义路由:

(r'/(.*)', MyWebSocketHandler),

括号中定义了一个捕获组,该捕获组将作为open()传递给args[0]

还要注意,allow_draft76方法在Tornado 4.0中已删除,因此不再有任何理由在处理程序中包括此方法。