问题标签 [autobahnjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
253 浏览

javascript - Sinon.js spy.call 不在 RPC 上工作

背景

我有一个使用交叉开关注册一些 RPC 的服务器,以及一个试图确保使用 sinon 调用 RPC 的测试。

代码

服务器.js

该服务器简单地连接到交叉开关,然后注册openRPC。

现在我的测试用例。我正在使用带有 chai 的 mocha:

测试.js

该测试也打开了与交叉开关的连接,然后调用open服务器上的方法。

问题

问题是,即使我看到了Hello Worldconsole.log,证明该方法实际上已执行,但我的测试总是失败,因为 openSpy.called总是false(即使调用了 spied 方法!)。

我试过的

  1. 删除Object.freeze. 我知道间谍和存根实际上替换了他们正在监视的函数和对象,但在这种情况下,它没有帮助。
  2. 使用 astub而不是spy. 当我的间谍不起作用时,我尝试用opena 替换该方法stub并使用callsFake来完成测试。不幸的是callsFake,似乎从来没有被称为...
  3. 使用setTimeout. 我想可能发生这种情况的原因是我很快就会进行测试,所以我创建了一个 setTimeout不断0发展的expect声明。也失败了。

问题

  1. 我究竟做错了什么?
  2. 我该如何解决?
0 投票
2 回答
2043 浏览

websocket - Web 套接字握手期间出错;websocket连接失败,使用autobahn.js

我正在尝试使用 Ratchet、React 和 Autobahn 创建一个 websocket 服务器。尝试连接时,我在控制台中收到此错误

autobahn.min.js:196 WebSocket 连接到“ws://localhost:8090/”失败:WebSocket 握手期间出错:意外响应代码:426

在谷歌的一些挖掘过程中,我发现 Ratchet 仅支持 WAMP1,但该信息是 2014 年的。这仍然相关吗?

这是JS

这是 WebsocketController 类

这是服务器:

标头

我在这里做错了什么?

0 投票
1 回答
126 浏览

wamp - Crossar.io 身份验证失败,尝试与高速公路握手时连接断开

我在使用 Autobahn JS 到 Crossbar.io 实现登录(使用 wampcra)时遇到了这些错误:

我认为这是高速公路版本的问题。

0 投票
1 回答
544 浏览

javascript - Autobahn-JS 未收到在同一页面上发布的订阅(示例)

我有一个 crossbar.io 服务器设置,我正在https://github.com/crossbario/autobahn-js上的浏览​​器(chrome 81.x)中尝试示例代码

我没有看到订阅消息。从那以后,我开发了自己的应用程序,并且看到了同样的情况。发布事件的网页没有调用它的订阅。换句话说,如果我在 2 个窗口中打开了相同的页面并让页面 A 发布消息,则页面 B 会收到订阅事件,但页面 A 不会。

不确定这是 autobahn-js 还是 crossbar.io 的问题。

我之前有一个支持此功能的 WAMP v1 实现(带有自定义路由器)。确保页面看到自己的发布消息对我来说至关重要。如果这不可能,我需要做很多工作来转换我的代码。

0 投票
1 回答
322 浏览

php - 在 Nginx 中为 proxy_read_timeout 设置什么值以防止浏览器中的 WebSocket 超时

一分钟后,浏览器不断断开套接字连接。我在服务器端使用 Ratchet,在客户端使用高速公路 js。

未使用一分钟后,socket 断开并显示 1006 错误代码,在我研究过程中,我发现我需要设置proxy_read_timeout为更高的值。我关心应该设置什么值以及超时后会发生什么我需要再次刷新浏览器吗?