autobahn.twisted.websocket 打开握手错误 400
Posted
技术标签:
【中文标题】autobahn.twisted.websocket 打开握手错误 400【英文标题】:autobahn.twisted.websocket opening handshake error 400 【发布时间】:2018-02-07 17:10:45 【问题描述】:问题:当 Bitfinex websocket API 连接建立应用程序出错时:
2018-02-07T18:51:52+0200 connecting once using transport type "websocket" over endpoint "tcp"
2018-02-07T18:51:52+0200 Starting factory <autobahn.twisted.websocket.WampWebSocketClientFactory object at 0x106708550>
2018-02-07T18:51:52+0200 failing WebSocket opening handshake ('WebSocket connection upgrade failed (400 - BadRequest)')
2018-02-07T18:51:52+0200 dropping connection to peer tcp4:104.16.173.181:443 with abort=True: WebSocket connection upgrade failed (400 - BadRequest)
2018-02-07T18:51:52+0200 component failed: ConnectionAborted: Connection was aborted locally, using.
2018-02-07T18:51:52+0200 Connection failed: ConnectionAborted: Connection was aborted locally, using.
2018-02-07T18:51:52+0200 Stopping factory <autobahn.twisted.websocket.WampWebSocketClientFactory object at 0x106708550>
代码如下:
from autobahn.twisted.component import Component, run
import json
cmp_Bitfinex = Component(
transports=[
u'type': u'websocket',
u'url': u'wss://api.bitfinex.com/ws',
u'endpoint':
u'type': u'tcp',
u'host': 'api.bitfinex.com',
u'port': 443,
,
u'options':
u"open_handshake_timeout": 100,
],
realm=u"realm1",
)
@cmp_Bitfinex.on_join
def joined(self):
def onTicker(*args):
print("Ticker event received:", args)
try:
yield from self.subscribe(onTicker, 'ticker', options=json.dumps(
"event": "subscribe",
"channel": "ticker",
"pair": "BTCUSD",
"prec": "P0",
"freq": "F0"
))
except Exception as e:
print("Could not subscribe to topic:", e)
@cmp_Bitfinex.on_connect
def connected(session, details):
print('Connected: \r\n '.format(session, details))
def main():
run([cmp_Bitfinex])
if __name__ == "__main__":
main()
我了解,该问题可能出在应用程序发送的数据中。但是,我不明白我的代码到底出了什么问题。
应用使用python 3.6,最新的autobahn和最新的Twisted
【问题讨论】:
【参考方案1】:AFAICT 高速公路组件用于使用 WAMP 进行编程。 我认为您应该使用他们的websocket programming。 Check this example
【讨论】:
以上是关于autobahn.twisted.websocket 打开握手错误 400的主要内容,如果未能解决你的问题,请参考以下文章