将Autobahn websocket添加到嵌套的Twisted资源

时间:2015-12-11 17:54:22

标签: python websocket twisted autobahn

我有一个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中但它似乎不起作用。

1 个答案:

答案 0 :(得分:0)

我在Twisted中追踪到python三个字符串问题。如果网址输入了斜杠,一切正常。但是如果没有尾部斜杠,那么调用Twisted函数addSlash会导致Python 3中出现未处理的异常。我在Twisted代码中添加了一个与两个python版本兼容的修复程序,似乎工作正常。