我有一个使用autobahn WebSocket框架使用twisted实现的WebSocket服务器。 当程序使用python运行时,WebSocket服务器运行正常。 但是,如果我通过创建tac文件作为扭曲服务使用twistd服务器运行程序运行它,我在服务器中得到以下错误,而任何客户端尝试建立连接并且握手失败。

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()

===============>>#1 票数:2

我今天发现了同样的问题。 您应该将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)

===============>>#2 票数:0

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

import txaio txaio.use_twisted()

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

===============>>#3 票数:0

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

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

===============>>#4 票数:0

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

autobahn(0.10.9)autobahntestsuite(0.7.4)Twisted(15.5.0)txaio(2.1.0)

  ask by Bill Goldberg translate from so

未解决问题?本站智能推荐:

1回复

如何在使用Autobahn Python和Twisted ReconnectingClientFactory重新连接后重新注册WAMP被调用者?

我有一个使用Twisted的Autobahn Python客户端应用程序,它连接到Crossbar.io服务器。 使用ReconnectingClientFactory丢失网络连接后,客户端应用程序可以成功重新连接。 客户端在连接时注册被叫方名称,以便其他应用程序可以调用它。 这始终适用于
1回复

所有HTTP标头键在Autobahn websocket服务器的ConnectionRequest.headers中均以小写形式出现

为什么高速公路Web套接字服务器将所有http标头密钥更改为小写? 我需要在OAuth2标准的标头中实现身份验证令牌,并使用自定义标头'Authorization:Bearer $ token'。 但是从WebSocketServerProtocol类的onConnect方法中的autoba
2回复

CannotListenError:无法监听任何内容:9008:[Errno 98]地址已在使用中

我正在通过Python在websocket上开发Autobahn的应用程序。 我发现了一个问题,如果中断后重新启动服务器代码一次,则服务器代码将向我发送错误消息,例如: 我错误地理解,即使在中断服务器之后,仍有一些基本服务正在运行,但是如何清除所有这些端口?
2回复

高速公路websocket

我正在评估和构建一个带有autobahn websocket的简单websocket服务器 有没有人使用子类WrappingWebSocketServerProtocol ,是否有使用此实现的任何示例? 与WebSocketServerProtocol相比有什么好处以及要覆盖/实现的子方
1回复

如何在android高速公路websocket中增加帧有效载荷大小

我正在使用android autobahn websocket在android和python龙卷风套接字服务器之间建立连接。 以下是在android中使用的高速公路Websocket代码。 public void start(){ 所有消息都以public void onTe
2回复

如何在高速公路中设置组件角色

我正在使用交叉开关0.11.1,并且我想让高速公路组件使用特定的角色。 当我向组件添加“角色”属性时,如下所示: 运行crossbar start时出现此错误
1回复

如何从高速公路python脚本中删除此错误?

我在下面的链接中关注有关高速公路python的教程; https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/app/calculator/calculator.py 导致错误的代码如下;
1回复

Redis操作阻止高速公路Web套接字服务器请求

我正在根据我从服务器客户端收到的消息,使用redis为我的Web套接字服务器保存/更新/删除数据(使用高速公路-基于扭曲的Web套接字实现实现)。 对于Redis操作,我使用redis-py软件包。 当有更多并发客户端连接到我的服务器时,我可以看到请求以同步方式服务。 我发现redis操作
1回复

扭曲的高速公路websocket使用wss初始化两次

我有一些通过Twisted实现的websocket协议,当我使用“ ws”连接时,它们可以正常工作,但是当我启用安全的websocket时, __init__方法被调用了两次。 更具体地说,它被调用一次,然后连接显然失败,并调用connectionLost,然后再次调用__init__ ,这一
1回复

使用高速公路Python发送JSON

我正在尝试将json内容从url widh sendMessage发送到客户端。 我得到错误