问题标签 [autobahnws]
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.
javascript - 断开与 Autobahn JS 的会话
我在 angularJS 应用程序中断开与 websocket 的会话时遇到问题。我知道 Autobahn JS 提供了一个 diconnect() 函数,但它仍然不起作用。
这是连接部分:
感谢您的任何建议
python - 高速公路python握手错误
我们在 Redhat (Red Hat 4.8.3-9) 上使用 python 2.7.5 并尝试在 Autobahn Python 中运行简单的 helloworld,同时启动服务器,我们收到以下错误:
您的帮助将不胜感激。
谢谢
以下是我的代码:
wamp - 从远程过程返回一个数组
我使用 Thruway 客户端注册了一个 RCP 程序,并使用 Autohahn 客户端调用它。
我面临的问题是,当被调用者从过程return array();
中返回一个空数组时,调用者会收到该null
值。
当被调用者返回一个单元素数组return array(['foo' => 'bar', 'baz' => 'quux']);
时,调用者接收到未包装在数组中的对象。
并且只返回一个数组中的多个对象按预期工作:调用者接收一个对象数组。
这绝对不方便且不直观:我必须检查响应是否已定义,是否为数组...我希望调用者接收我实际从被调用者发送的内容:一个空数组,一个元素的数组和多个元素的数组。我发送一个数组 - 我希望客户端得到一个数组。
问题是:如何解决这种行为?我什至不确定这两个客户端中的哪一个配置错误。或者这可以在路由器上配置(我使用 Crossbar 作为路由器)。或者这可能是协议的预期实现(这太糟糕了)。
websocket - 如何在 autobahn.ws 中获取订阅客户的列表?
现在我正在使用 wamp-protocol、crossbar.io、autobahn.ws 开发聊天。我们只有两个客户的房间。我需要定义其他客户端是否在房间里,如果它在我发布新消息,否则我向 GCM 发出请求。每个房间都有自己的 uri,例如“com.example.chat”。
这就是为什么我需要在指定的 uri 'com.example.chat.' 中获取客户列表。
python - 如何为 websocket 编写 TestCase?
我只想WebSocketClientProtocol
在 setUp 和 tearDown 中编写一个 TestCase 我认为我正确设置了服务器。
我想要的就是test client connected to server and server send some message client will receive
这样。
下面是我尝试制作的代码,但我不会从这里走得更远
autobahn - 握手问题
使用横杆时我遇到了一些问题。我开始运行高速公路 python 后端和高速公路 js 前端,一切似乎都很正常,直到我收到此错误:
知道为什么吗?以及如何解决?
编辑:
这是一些代码(我正在使用 WAMP),但我认为问题与代码无关,因为它已在其他网络中工作,只是现在不在我所在的网络中。无论如何:
前端:
后端:
配置文件
javascript - Autobahn javascript 连接 - 传递动态服务器
我正在使用下面的 javascript 代码连接到高速公路服务器。所有这些时间我都使用静态 ip,但现在 ip 将是动态的。如何传递动态服务器 ip 并动态连接高速公路?
python - 带有 .NET 路由器的高速公路组件 (WampSharp)
目前我正在使用 WAMP 原型,我很好奇这样的事情是否可行,因为我无法让它工作:
1.拥有用 c# (WampSharp) 编写的 WAMP 路由器:
2.拥有用python编写的组件:
当我运行 python 脚本时,出现错误:
根据http://autobahn.ws/python/wamp/programming.html#running-a-wamp-router
我们创建的组件尝试连接到本地运行的 WAMP 路由器,该路由器接受端口 8080 上的连接,并用于领域 realm1。
我们建议的方法是使用 Crossbar.io 作为您的 WAMP 路由器。除了 Crossbar.io 之外,还有其他 WAMP 路由器。
这样的事情能实现吗?
谢谢,
西瓦
websocket - 如何在 Crossbar+Autobahn 中拦截 Websocket 调用
我想知道是否可以实现一些拦截器来检查 websocket RPC 中的用户身份验证。我的用例是
用户使用 URI 'com.safe.reg' 向自己注册一些令牌
令牌已针对 sessionid 进行验证和缓存
对于下一次调用其他 URI(比如“com.bus.op1”),我想确保令牌仍然有效,因此想要调用一些东西来检查缓存的 sessionid 令牌。
我希望每次业务调用都发生这种情况,而且我不想将会话 ID 作为函数调用中的参数发送。
这通常在 http 请求-响应通信中的拦截器中处理。我们如何在使用交叉开关的同时在 websockets 中实现这一点?
autobahn - 处理通过 RPC 查询完整状态和发布的增量之间的竞争
我即将设计一个基于高速公路的系统。我经常遇到以下模式:
- 客户端可以通过 RPC 主题请求完整状态 - 例如,投票示例中的所有投票
- 此状态的更新由服务器发布 - 例如特定主题的更改投票
- 客户端通过结合完整状态和更新来跟踪当前状态。
问题如下:
由于高速公路的异步特性,在查询状态和发布更改之间存在潜在的竞争。
虽然在服务器端计算状态,但可能已经将更新发送到客户端。一旦客户端收到完整的状态,它就不再是最新的了。它必须使用较早收到的更新进行修补。
不知何故,我觉得这是一个普遍的问题。是否有一些关于如何处理这种情况的最佳实践?
我正在考虑这样的事情:
- 客户端首先订阅更新主题,然后才进行 RPC 调用。
- 服务器发送的所有数据都必须带有时间戳。
- 如果在 RPC 调用返回之前接收到更新,则将其保存。
- 一旦 RPC 调用到达,客户端会使用所有接收到的更新来修补状态,这些更新具有更新的时间戳。
这有意义吗?还是我错过了一些明显的东西?
我稍微修改了横杆投票示例以显示问题。
查询当前投票的 RPC 调用被人为延迟 5 秒。在收到状态之前打开 web 应用程序并提交投票时,一旦处理投票并收到更新,很快就会看到正确的投票计数。
最终延迟状态到达 - 并显示过时的投票计数。