由于标准最新版本的棘轮/舷窗和高速公路违反协议,wamp连接失败

时间:2016-04-21 20:29:53

标签: autobahn ratchet wamp-protocol

我正试图从我的本地网站建立一个wamp连接。我在服务器端使用了Ratchet / Wamp,在客户端使用了autobahn | js。该服务运行正常,我能够连接,onOpen / onClose回调正在服务器上触发。

但是当我从浏览器连接时,永远不会调用连接的onopen回调。相反,控制台日志显示以下内容:

"AutobahnJS debug enabled" autobahn.js:123:6
"Ok, Autobahn loaded" "0.9.9" wamp.php:28:1
"trying to create WAMP transport of type: websocket" autobahn.js:732:6
"using WAMP transport type: websocket" autobahn.js:732:6
Array [ 1, "blablaRealm", Object ] autobahn.js:732:6
"WebSocket transport send" "[1,"blablaRealm",{"roles":{"caller":{"features":{"caller_identification":true,"progressive_call_results":true}},"callee":{"features":{"caller_identification":true,"pattern_based_registration":true,"shared_registration":true,"progressive_call_results":true,"registration_revocation":true}},"publisher":{"features":{"publisher_identification":true,"subscriber_blackwhite_listing":true,"publisher_exclusion":true}},"subscriber":{"features":{"publisher_identification":true,"pattern_based_subscription":true,"subscription_revocation":true}}}}]" autobahn.js:732:6
"WebSocket transport receive" "[0,"19232286535719350273b26118584308",1,"Ratchet\/0.3.4"]" autobahn.js:732:6
"failing transport due to protocol violation: unexpected message type 0" autobahn.js:732:6
InvalidAccessError: A parameter or an operation is not supported by the underlying object autobahn.js:5308:0

InvalidAccessError是在对websocket对象的close方法调用期间,可能永远不会正确初始化,我希望在我知道导致主要问题的原因之后就会消失,我完全是这样的在黑暗中如何解决此刻。

你知道发生了什么吗?可能是我使用的棘轮和高速公路之间是否存在不兼容性?两人都声称坚持这个标准,但这是我现在所能想到的,对Wamp来说是新手。

1 个答案:

答案 0 :(得分:1)

Ratchet是WAMP v1(他们的文档是在这是唯一版本的时候写的,所以他们不提这个)。见https://github.com/ratchetphp/Ratchet/issues/168

WAMP v1不在我们这边(Crossbar.io/Autobahn项目),因为WAMP v2提供了更多功能。有一个旧版本的Autobahn支持WAMP v1(参见上面链接的问题线程),但我建议你转移到另一个WAMP路由器。

我的建议当然是Crossbar.io(因为我是该项目的一部分),但还有其他人 - 请参阅http://wamp-proto.org/implementations