我有一个Twisted网络服务器,同时提供静态网站和Autobahn websocket。 websocket作为子项添加到Custom站点,如下所示:
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添加到final中但它似乎不起作用。
答案 0 :(得分:0)
我在Twisted中追踪到python三个字符串问题。如果网址输入了斜杠,一切正常。但是如果没有尾部斜杠,那么调用Twisted函数addSlash会导致Python 3中出现未处理的异常。我在Twisted代码中添加了一个与两个python版本兼容的修复程序,似乎工作正常。