问题标签 [crossbar]

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 投票
1 回答
116 浏览

node.js - 使用 2 个不同的客户端使用 ws 和 WAMP 路由器路由聊天消息

我正在为我的公司构建一个聊天支持应用程序,我正在使用节点 js、websocket 和 WAMP 路由器来做同样的事情,有 2 个不同的客户端 (html)。一种用于客户发送请求,另一种用于支持以响应相同的请求。

我一开始很困惑,如何在 2 个不同的 html 客户端之间传输消息。如果有任何例子,有人可以帮助我。

我有单个 html 客户端工作正常,但不能在 2 个 html 客户端上,如何传输聊天消息。

提前致谢

苏尼尔

0 投票
1 回答
224 浏览

python - Crossbar.io:HTTP 桥服务调用者:正确发送签名请求

我正在使用 crossbar HTTP 桥服务调用程序来使用已注册的 RPC。但是当我发出 HTTP POST 消息时,我得到“无效的请求签名”作为响应。

根据http://crossbar.io/docs/HTTP-Bridge-Services-Caller/

签名计算为以下值的 Base64 编码:HMAC[SHA256]_{secret} (key | timestamp | seq | nonce | body)

如何正确进行串联?我尝试了有和没有字符| 和空格。

用于签名请求的交叉开关 config.json 文件的部分:

发送请求的python代码:

0 投票
1 回答
385 浏览

autobahn - How do I know who sent a WAMP message?

Is there any way to get metadata about who (authid) published a given message or called an RPC? After I have users authenticate and authorize them for a given role (e.g. allowing them to publish to mychat) how can I prevent clients from spoofing each other's names? Subscribers/callees are just passed the arguments that the pub/caller passed; I don't see how to get session data.

A workaround might be to use dynamic authorization, where each client is only authorized to publish to mychat.<userid>, but that seems icky. Can I just get the session dictionary for normal subs/calls like the dynamic authorization call gets?

0 投票
1 回答
258 浏览

python - crossover.io、WAMP、twisted (+ klein) 和 django/flask/bottle 如何交互?

据我了解(显然,请纠正误解),提到的项目/技术如下:-

Crossover.io - WAMP 的路由器。跨语言。

WAMP - 一种异步消息传递协议,支持(除其他外)Pub/Sub 和 RPC。跨语言。

twisted - 一个异步循环,主要用于网络(低级)。特定于 Python。据我所知,python 中当前的 crossover.io 实现是建立在 twisted 之上的。

klein - 建立在扭曲的模拟烧瓶之上,但异步(并且没有使烧瓶更易于使用的插件)。特定于 Python。

django/flask/bottle - 用于提供 Web 内容的各种堆栈/解决方案。所有都是同步的,因为它们实现了 WSGI。特定于 Python。

他们如何互动?例如,我可以看到,twisted 如何用于各种 python 应用程序之间的网络连接,以及任何语言应用程序之间的 WAMP(crossover.io 是路由的一个选项)。

但是,对于网络,通常需要某种形式的基于 HTTP/浏览器的连接,这就是 Python django 和替代方案历史上使用的地方。然而,在它们之间的交互和交叉/扭曲方面,我似乎找不到太多。

需要明确的是,有钩针(和克莱因)之类的东西,但这些似乎都不能解决我认为是基本问题的问题,即说“我希望对一些底层 python 代码有一个反应式用户界面” . 或者“我想让我的 python 代码更新当前正在查看的网页”的另一个基本问题。

传统上,我猜它使用 AJAX 处理,并且在 django et 提供的网页上类似。al.,但在有限的硬件上,这似乎比异步方法可扩展性要小得多(由于扭曲和龙卷风等,这在 python 中是完全可行的)。

总结 WAMP/twisted 和 django/flask/bottle 等底层组件之间是否存在“自然”交互?如果是这样,它是如何工作的。

0 投票
1 回答
290 浏览

jmeter - Jmeter wamp 协议集成

故事是这样的:我们有几台服务器连接到 wamp (crossbar.io) 我正在为这个系统的一部分创建负载测试,并且需要一种从 wamp 服务器获取信息到 Jmeter 的方法。

到目前为止,我只找到了 Jmeter 的 WS 插件,但它不适用于 wamp。有什么好主意吗?

0 投票
2 回答
890 浏览

autobahn - 无法使用 TLS 连接到交叉开关路由器

我在这里运行了示例:https ://github.com/crossbario/crossbarexamples/tree/master/wss/python ,一切正常。

但是,以下情况对我不起作用:

config.json 文件:

web/index.html 文件只是为了查看 TLS 是否有效:

我生成了证书,如果我连接到https://127.0.0.1:9000. 页面加载正确。

但是,我在 node.js 中设置了另一个项目来尝试注册一些东西..(代码取自页面加载计数示例)

中的代码server.js

现在,wss://127.0.0.1:9000/ws是路由器的正确 URL,但是我总是收到以下信息:

它无法连接到服务器。

我确信一些基本概念正在逃避我,也许你可以引导我走向正确的方向。

0 投票
1 回答
83 浏览

crossbar - 综合多节点交叉开关系统实现

我正在实现一个由一组小系统组成的系统,即。Raspberry、Yun、Beaglebone,偶尔的 PC。Crossbar.io 有真正的希望......但是,据我所知,目前不支持多个节点。我对么?有谁知道什么时候会发生?

与此同时,我想到每个单独的节点都可以提供一个我可以用于我的目的的 http 接口。我最初的想法是在附属节点的接口上封装对 Web 的访问的工作人员。这符合我要创建的系统的整体架构——它有什么优点吗?是否易于处理?我是 websockets 的新手——洞察力将是一个很大的帮助。

谢谢你的时间,艾尔

0 投票
1 回答
66 浏览

python - 从现有的应用程序会话和事件循环开始

我希望能够从现有的事件循环/反应器中生成一个独立的事件循环/反应器。假设我在模块中有一个应用程序standaloneapps

我希望能够从另一个应用程序启动此应用程序。例子:

我可以开始ApplicationStarter,但是一旦我发布事件,'com.example.startapp'横杆就会崩溃并出现异常builtins.Exception: not joined

也许这似乎是一个过于复杂的设置,但我试图让一个应用程序订阅一个“应用程序调度程序”,它可以动态启动可能提前知道或不知道的新应用程序。我希望新应用程序在不同的事件循环上运行以保持隔离。

0 投票
0 回答
331 浏览

javascript - WAMP - AutobahnJS:刷新页面时的多个订阅

我使用 Crossbar 作为 WAMP 路由器并发布在网页前端订阅和呈现的事件。

我首先从前端打电话告诉后端开始发布信息。然后我订阅了这个话题。

编辑这里的想法是我想从后端发布信息以在前端查看,但没有必要一直发布它。因此,当页面加载时,我想发送一条消息告诉它开始发布,然后在不再需要它时停止它。

这是前端代码的相关部分。

在后端,我做了一些处理来获取信息并发布它。这是后端代码:

我遇到的问题是,当我刷新页面时,它会创建一个新订阅。但原始订阅仍在发布相同的信息。所以刷新页面后,我双重订阅。

我想知道处理这个问题的最佳方法是什么。

0 投票
1 回答
110 浏览

javascript - AutobahnJS:远程调用异步函数

我正在尝试通过 WAMP 调用远程函数。但是如果它具有异步行为,我不知道如何编写被调用函数。在每个示例中,我都看到远程函数返回结果。如何以我通常使用回调的异步方式完成此操作?

示例:这是一个将异步获取文件内容的函数的注册。

这是我远程调用该函数的方法。

但这是注册的实际功能。

如何从 getFileContents 返回数据,以便可以通过 WAMP 连接发回?我知道我可以使用 readFileSync 并返回它返回的内容。但我特别询问如何以异步方式执行此操作。