首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >那么WAMP.2呢?

问那么WAMP.2呢?
EN

Stack Overflow用户
提问于 2018-03-09 22:16:41
回答 1查看 376关注 0票数 0

似乎真的很难找到关于WAMP.2协议的任何东西。我正在尝试连接一个使用WAMP.2的webSocket,使用Python,autobahn和twisted。然而,我一直收到这个错误:

代码语言:javascript
复制
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.

现在,通常,当我被卡住的时候,我至少可以在互联网上找到一些关于它的东西。然而,关于这方面的信息似乎很少(google甚至没有给出任何与WAMP.2相关的结果)。

我想,如果webSocket服务器正在使用WAMP.2,那么肯定有一种方法可以连接到它们,对吧?如果是这样,为什么很难找到关于它的任何东西呢?

我正在使用的代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2018-03-12 21:51:43

WAMP是一个建立在WebSocket之上的协议,你需要一个库来实现它。

Autobahn|Python会这样做,但您正在尝试与WAMP路由器建立纯WebSocket连接。这自然会失败。

有关如何从Python连接到WAMP路由器的基本示例,请参阅例如https://github.com/crossbario/crossbar-examples/tree/master/hello/python

附注:http://wamp-proto.org/implementations/上列出的所有实现都在运行WAMP v2。版本1几乎已经被载入史册。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49195721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档