很难找到关于WAMP.2协议的任何信息。我正在尝试连接到使用WAMP.2的webSocket,使用Python,autobahn和twisted。但是,我不断收到此错误:
2018-03-09 14:54:53+0100 [-] Log opened.
2018-03-09 14:54:53+0100 [-] Starting factory
<autobahn.twisted.websocket.WebSocketClientFactory object at 0x000002A461F489B0>
2018-03-09 14:54:53+0100 [-] failing WebSocket opening handshake ('WebSocket connection upgrade failed (400 -ThisserveronlyspeaksWebSocketsubprotocolswamp.2.cbor.batched,wamp.2.cbor,wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.ubjson.batched,wamp.2.ubjson,wamp.2.json.batched,wamp.2.json)')
2018-03-09 14:54:53+0100 [-] dropping connection to peer tcp4:... with abort=True: WebSocket connection upgrade failed (400 - ThisserveronlyspeaksWebSocketsubprotocolswamp.2.cbor.batched,wamp.2.cbor,wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.ubjson.batched,wamp.2.ubjson,wamp.2.json.batched,wamp.2.json)
2018-03-09 14:54:53+0100 [-] Stopping factory
<autobahn.twisted.websocket.WebSocketClientFactory object at 0x000002A461F489B0>
2018-03-09 14:55:01+0100 [-] Received SIGINT, shutting down.
2018-03-09 14:55:01+0100 [-] Main loop terminated.
现在,通常,当我遇到困难时,我至少可以在互联网上找到一些关于它的东西。但是,似乎几乎没有关于此的信息(谷歌甚至没有给出任何与WAMP.2相关的结果(。
我想,如果 webSocket 服务器使用 WAMP.2,一定有办法连接到它们,对吧?如果是这样,为什么很难找到关于它的任何内容?
我正在使用的代码:
from autobahn.twisted.websocket import WebSocketClientFactory,
WebSocketClientProtocol, connectWS
from twisted.internet import reactor
class EchoClientProtocol(WebSocketClientProtocol):
def sendHello(self):
self.sendMessage("Hello, world!")
def onOpen(self):
self.sendMessage("Hi there")
def onMessage(self, msg, binary):
print("Got echo: " + msg)
reactor.callLater(1, self.sendHello)
if __name__ == '__main__':
import sys
from twisted.python import log
log.startLogging(sys.stdout)
factory = WebSocketClientFactory("wss://api.poloniex.com")
factory.protocol = EchoClientProtocol
connectWS(factory)
reactor.run()
WAMP是一个位于WebSocket之上的协议,你需要一个实现它的库。
高速公路|Python 这样做了,但您正在尝试与 WAMP 路由器建立纯 WebSocket 连接。这自然会失败。
有关如何从 Python 连接到 WAMP 路由器的基本示例,请参阅 例如 https://github.com/crossbario/crossbar-examples/tree/master/hello/python
旁注:WAMP v2 是 http://wamp-proto.org/implementations/中列出的所有实现正在运行的内容。 版本 1 几乎已经屈服于历史书。