[英]Add an Autobahn websocket to a nested Twisted resource
我有一个同时服务于静态站点和高速公路站点的Twisted网络服务器。 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"
)。 我试过拆分websocket路径,然后为每个级别创建一个资源,将websocket添加到最终版本,但似乎不起作用。
我在Twisted中将此问题归结为python三个字符串问题。 如果在URL后面加上斜杠,则一切正常。 但是,如果没有尾部的斜杠,则会调用Twisted函数addSlash,这会在Python 3中引起未处理的异常。我在Twisted代码中添加了一个修复程序,该代码与两个python版本都兼容,并且似乎可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.