将高速公路网络套接字添加到嵌套的Twisted资源中



我有一个Twisted Web服务器,同时为静态站点和高速公路网络套接字提供服务。websocket作为子站点添加到自定义站点,如下所示:

    self.factory = WebSocketServerFactory(address+":"+str(port), debug=False)
    self.factory.protocol = self.getWebSocketProtocol()
    resource = WebSocketResource(self.factory)
    staticfilepath = kwargs['staticfilepath'].encode('utf-8')
    websocketpath = kwargs['websocketpath'].encode('utf-8')
    root = CustomFile(staticfilepath)
    root.putChild(websocketpath, resource)

这还可以。问题是我现在需要将websocket添加到嵌套路径中(例如,不要在websocketpath="ws"使用websocketpath="sockets/ws")。我尝试过拆分websocketpath,然后为每个级别创建一个资源,将websocket添加到最终版本,但似乎不起作用。

我在Twisted中追踪到了python的三个字符串问题。如果url是用尾部斜杠输入的,一切都可以。但是,如果没有尾部斜杠,则会调用Twisted函数addSlash,这会导致Python 3中出现未处理的异常。我对Twisted代码进行了修复,它与两个python版本都兼容,并且似乎工作正常

相关内容

  • 没有找到相关文章

最新更新