问题标签 [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 投票
0 回答
592 浏览

autobahn - 握手问题

使用横杆时我遇到了一些问题。我开始运行高速公路 python 后端和高速公路 js 前端,一切似乎都很正常,直到我收到此错误:

知道为什么吗?以及如何解决?

编辑:

这是一些代码(我正在使用 WAMP),但我认为问题与代码无关,因为它已在其他网络中工作,只是现在不在我所在的网络中。无论如何:

前端:

后端:

配置文件

0 投票
2 回答
508 浏览

javascript - autobahn JS,如果 RPC 的被调用者是异步的怎么办?

autobahnJS的文档中提供了以下示例来说明如何设置远程过程调用 (RPC):

如果 add2 需要做一些异步操作怎么办?我的想法是,也许可以回调在客户端中注册的另一个远程函数,该函数触发了对 backend.add2 的初始调用。像这样的东西:

你有没有更好的选择?这对我来说似乎有点麻烦。理想情况下 add2 会返回一个承诺。但我不确定这是否可以通过 RPC 实现?

0 投票
1 回答
390 浏览

php - 本地主机上的 Thruway WebSocket 连接

按照https://github.com/voryx/Thruway的说明,我正在尝试在本地主机(Windows)上设置一个 websocket 服务器,这只会给我WebSocket connection to 'ws://127.0.0.1:9090/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

我通过它启动了服务器,> php vendor/voryx/thruway/Examples/SimpleClient.php它给了我以下控制台输出:

2016-11-19T18:58:56.4982780 notice [Thruway\Peer\Client 308] Changing PHP precision from 14 to 16 2016-11-19T18:58:56.5007740 info [Thruway\Peer\Client 308] New client created 2016-11-19T18:58:56.5016600 info [Thruway\Transport\PawlTransportProvider 308] Starting Transport

在客户端,我使用来自https://github.com/crossbario/autobahn-js的推荐示例。哪个应该工作 - 我可以成功连接到测试服务器 ws://demo.thruway.ws:9090。

在 Windows 10 php7 上的最新 Chrome 中测试。

任何帮助或提示将不胜感激。

0 投票
1 回答
761 浏览

php - 如何使用 Thruway 在服务器端解析消息

我想将 websocket 用于投票应用程序。有两个部分:一个是聊天频道,另一个是命令频道,有关问题、可用答案、倒计时等的信息将在其中传播。

在客户端,我使用Autobahn|JS作为库。我可以轻松订阅我的两个频道(我可以在服务器日志上看到它)

在服务器端,我使用Thruway,因为它符合 WAMP v2。

我的问题:我不知道如何在服务器端挂钩消息以在每个主题上广播它们。似乎很容易,但我可以找到任何解决方案。

我想这是通过使用InternalClient,但我不太确定......

一些代码:

JS 客户端

紧接着,我在聊天框上添加了一个监听器:

PHP 服务器

服务器日志

如果您有任何想法……谢谢!:)

0 投票
1 回答
722 浏览

vuejs2 - 将 AutobahnJS 与 Vue.js 集成

我正在寻找一种将 Vue.js 与 AutobahnJS 集成的简单方法。我已经检查了这个repo 以获得指导/模板,但我的主要问题是 Autobahn 有两层“等待”:

  1. 首先你创建一个连接/会话实例
  2. 您等待它连接(甚至可能重试 N 次)
  3. 只有在此之后,您才能访问会话方法(订阅/呼叫/等..)

凭借我有限的 JS 知识(我是后端开发人员),我有两个想法:

  1. 创建一个全局变量,该变量将在连接后分配给高速公路会话。这肯定会导致 var 尚未设置的情况,因此每次我想从 vue 实例订阅时都必须检查它的存在。
  2. 将 Vue 初始化代码放入 Session 连接的回调中,但这会延迟整个应用程序,这显然也很糟糕。

我正在寻找一个简单有效的解决方案,不一定是一个成熟的插件(我在任何地方都没有找到)。

任何帮助/建议表示赞赏!

0 投票
0 回答
286 浏览

php - 高速公路 js + thruway php 连接建立错误

我正在使用PHP 高速公路库+ autobahn.js

现在我正在尝试执行高速公路文档中的示例。我运行 aSimpleWebRouter并尝试使用autobahn.js.

我将侦听器 ip 更改为0.0.0.0:9090,但高速公路仍然返回连接建立错误。

无法到达

但是服务器是可以访问的。

0 投票
2 回答
390 浏览

javascript - 如何使 Autobahn-JS 在 QML 中工作?

我们想在我的服务器客户端应用程序中使用 WAMP 协议。我找到了实现 Web 应用程序消息传递协议 (WAMP) 的Autobahn-js 。我们想使用 QML 来设计前端(瘦客户端)并针对 Android、IOS、Windows Mobile 和桌面平台。由于 Autobahn-js 是用 Javascript 编写的,我认为它会起作用。但不幸的是,它没有。

以下是我所做的:

  • 我已经从 Github 下载了Autobahn Js库。

  • 我已将所有文件包含在我的 QML 项目中。

  • 将“lib/autobahn.js”导入为 AutoBhan

  • 然后出现错误 qrc:/lib/autobahn.js:15: ReferenceError: require is not defined

谷歌搜索后我才知道“require() 函数是 node.js 的核心函数,它是引擎的一部分。它不是特定于语言的东西,就像基于浏览器的 Javascript 中的窗口对象不是 Javascript 中的东西语言。node.js 实际上是:一个服务器端的 JavaScript 引擎,它执行 JavaScript 文件。它不是一个框架,你可以加载到像 Qt 这样的另一个引擎中。资源。

这是我的问题:

  1. 如何制作/构建 Autobahn Js 库,以便可以在 qml 中使用高速公路?这实际上使 node.js 函数在 qml 中运行。

  2. 尽管有 C++ 实现,但我不相信在 qml 中使用 C++ 包装器,因为它依赖于像 Boost 这样的第三方。

  3. 是否可以在 QML 中制作依赖于 node.js 函数的 JS 库?请告诉我。谢谢

仅供参考:我使用Crossbar.io作为路由器

0 投票
1 回答
351 浏览

wamp - 重新连接后重新建立 WAMP 订阅

我在 Web 浏览器中使用 autobahn-js (0.11.2),在后端使用交叉开关消息路由器 (v17.2.1)。

如果网络断开(例如由于网络不佳),可以将 autobahn-js 客户端配置为尝试定期重新连接。

现在,在我的由高速公路驱动的网络应用程序中,session.subscribe('my.topic', myhandleevent)动态创建了对不同 WAMP 主题的订阅。

是否有关于如何在重新连接时重新注册所有活动订阅的最佳实践?这甚至可以配置吗?

0 投票
3 回答
1416 浏览

javascript - s3 无法访问 autobahn.js 文件

一段时间以来,我在我的项目中使用 autobahn.js 和 autobahn.min.js 文件,这些文件直接链接自:

正如http://autobahn.ws/网站上所建议的那样。

今天我发现以上两个文件不再可以通过这些链接访问。我唯一能看到的是带有消息的 403 错误:访问被拒绝。

我在任何地方都找不到任何镜子。我尝试使用以下指令构建它们:http: //autobahn.ws/js/building.html。没有这样的运气。我在哪里可以找到 autobahn.js 文件,以便在将来发生这种情况时下载它们?

0 投票
1 回答
96 浏览

javascript - 以编程方式启动 crossbar.io

客观的

我有一个简单的发布服务器(在 nodejs 中,使用autobahn.js),它从机器接收数据,然后将其发布给感兴趣的订阅者。

我目前正在做集成测试,我需要知道:

  • 如果 crossbar 正在运行,我需要测试服务器是否能够成功连接到它
  • 如果没有,我需要启动 crossbar,运行之前的测试,然后杀死 crossbar

问题

据我所知,没有办法检测交叉开关是否正在运行,或者从代码中启动它。此外,我的研究使我想到了这个 github 问题:

这让我相信,如果不是不可能的话,使用 crossbar 运行集成测试需要一个相对详细的解决方法。

问题

  1. 有没有办法启动和测试交叉开关是否以编程方式运行?
  2. 如果没有,您如何使用交叉开关执行集成测试?