4

我有一个使用twisted 的高速公路WebSocket 框架实现的WebSocket 服务器。当程序使用 python 运行时,WebSocket 服务器运行良好。但是,如果我通过将 tac 文件创建为扭曲服务来使用扭曲服务器运行程序运行它,当任何客户端尝试建立连接并且握手失败时,我会在服务器中收到以下错误。

2015-12-08 07:17:56,022 - CRITICAL - twisted.publishToNewObserver() 154 Unhandled Error Traceback (most recent call last): File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/log.py", line 84, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/posixbase.py", line 597, in _doReadOrWrite why = selectable.doRead() --- <exception caught here> --- File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/tcp.py", line 1067, in doRead protocol = self.factory.buildProtocol(self._buildAddr(addr)) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/protocol.py", line 135, in buildProtocol p = self.protocol() File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/autobahn/websocket/protocol.py", line 665, in __init__ self.is_closed = txaio.create_future() File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/txaio/_unframework.py", line 43, in _throw_usage_error "To use txaio, you must first select a framework " exceptions.RuntimeError: To use txaio, you must first select a framework with .use_twisted() or .use_txaio()

4

4 回答 4

3

我今天发现了同样的问题。您应该将 txaio 降级到版本 1.1.0

这是我的点子列表 autobahn (0.10.9) autobahntestsuite (0.7.3) Twisted (15.4.0) txaio (1.1.0) zope.interface (4.1.3)

于 2015-12-08T16:18:26.270 回答
1

AutobahnTestSuite 刚刚更新并纠正了这个问题:

高速公路 (0.10.9) 高速公路测试套件 (0.7.4) 扭曲 (15.5.0) txaio (2.1.0)

于 2015-12-11T15:32:48.990 回答
0

这个问题在我的 Ubuntu 系统中没有发生。我在使用 Machine Image Amazon Linux AMI 的 ec2 实例中遇到了这个问题。似乎 txaio 无法检测到可用的扭曲框架。除了上面提到的@helder.vasc 之外的另一个修复是明确指定框架为扭曲的。在 tac 文件中添加以下内容解决了该问题:

import txaio txaio.use_twisted()

请注意天气,这是解决此问题的完美方法。

于 2015-12-09T09:41:09.870 回答
0

你可以试试高速公路大师吗?这应该在那里修复,但还没有包含修复的版本 (dd1cff8f9480a125e510108482bfaf5b9eedc916)。

你可以像这样安装master:pip install https://github.com/crossbario/autobahn-python/archive/master.zip

于 2015-12-09T20:40:07.977 回答