问题标签 [wamp-protocol]
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.
wamp - 取消订阅客户端的服务器方法
有没有一种方法可以被服务器用来销毁客户端?
目前,只有客户端可以自行从 WAMP 服务器取消订阅/取消注册。但是,如果客户端崩溃,subscribe id
则由死去的客户端占据。因此,我们需要subscribe id
手动更改并重新启动客户端,这在生产环境中是不可行的。
reactjs-flux - 通量和高速公路
我在 authobahn 使用通量,我对我的架构感到担忧。我有一些组件通过订阅 pubsub 主题来获取它们的状态。
目前我正在使用通量来获取数据,我的操作如下所示:
这是处理订阅的正确方法吗?我不太喜欢 subscribeToRoom 动作的想法,它总是监听事件,并在调度程序中发送订阅。
websocket - 使用高速公路作为 WAMP 路由器的缺点?
我目前正在研究使用 WAMP 协议在我未来的 Web 应用程序的服务器和客户端之间进行同步。
他们建议使用crossbar.io 作为路由器,但由于 Autobahn 本身支持所有四个角色(发布者、订阅者、调用者、被调用者),我想知道为什么我需要另一个路由器框架,如 crossbar.io?
我想将 node.js 与 Autobahn|JS 一起用作路由器,并将 Web 浏览器中的 Autobahn|JS 用作客户端。这是可行的还是我在这里遗漏了什么?
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代码:
php - PHP Ratchet Wamp 在发布事件上向订阅者广播
我正在开发一个 Web 应用程序,我需要以下场景的实时行为,
应用程序将有两种类型的用户Player
和Spectator
. 玩家可以加入正在进行的游戏,而观众可以只是旁观。
游戏将由管理员用户初始化。
观众基本上是可以看到加入游戏的人员列表的人。当然,这需要是实时的,当玩家断开连接或新玩家加入游戏时,观众看到实时列表。
总结一下,考虑下面的例子
将正在进行的游戏视为主题/频道 ( Ratchet\Wamp\Topic
),我需要向观众广播以下事件player join
以及player left
观众订阅的游戏/主题。
我在服务器端使用Ratchet WebSockets for PHP ,在客户端使用高速公路 js
下面是代码。到目前为止,当玩家加入/断开游戏时,我可以向服务器(从客户端)发送信息。但是当玩家加入或断开连接时,我如何将这些信息广播给观众(客户端)。
播放器.html
观众.html
服务器.php
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?
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 等底层组件之间是否存在“自然”交互?如果是这样,它是如何工作的。
jmeter - Jmeter wamp 协议集成
故事是这样的:我们有几台服务器连接到 wamp (crossbar.io) 我正在为这个系统的一部分创建负载测试,并且需要一种从 wamp 服务器获取信息到 Jmeter 的方法。
到目前为止,我只找到了 Jmeter 的 WS 插件,但它不适用于 wamp。有什么好主意吗?
unit-testing - 如何测试 WAMP 服务?
上下文:我想编写一个使用 WAMP(Web 应用程序消息传递协议,而不是 Windows 的服务集合)的 Web 服务。应该使用 WAMP,因为它以非常简单的方式支持事件和 RPC。并且开销更低。
现在如何在不手动编写所有内容的情况下对我的服务的 RPC 方法进行单元测试?
我的第一个方法是将 Autobahn-JS 和 QUnit 结合在一起。这里的问题是 AutobahnJS 不支持阻塞的“open()”方法。所以我不能确定 QUnits beforeEach-hook 打开的连接。看这个例子:
还有其他/更好的选择吗?
javascript - WAMP - AutobahnJS:刷新页面时的多个订阅
我使用 Crossbar 作为 WAMP 路由器并发布在网页前端订阅和呈现的事件。
我首先从前端打电话告诉后端开始发布信息。然后我订阅了这个话题。
编辑这里的想法是我想从后端发布信息以在前端查看,但没有必要一直发布它。因此,当页面加载时,我想发送一条消息告诉它开始发布,然后在不再需要它时停止它。
这是前端代码的相关部分。
在后端,我做了一些处理来获取信息并发布它。这是后端代码:
我遇到的问题是,当我刷新页面时,它会创建一个新订阅。但原始订阅仍在发布相同的信息。所以刷新页面后,我双重订阅。
我想知道处理这个问题的最佳方法是什么。