问题标签 [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.

0 投票
1 回答
1049 浏览

python - 使用带有 Twisted ReconnectingClientFactory 的 Autobahn Python 重新连接后如何重新注册 WAMP 被调用者?

我有一个使用 Twisted 的 Autobahn Python 客户端应用程序,它连接到 Crossbar.io 服务器。在失去网络连接后,客户端应用程序可以使用 ReconnectingClientFactory 成功重新连接。客户端在连接时注册一个被调用者名称,以便其他应用程序可以调用它。这始终适用于初始连接。

但是,当从丢失的连接中恢复时,不能重新注册被叫名称,因为被叫名称仍然是从先前丢失的连接中注册的。这会导致错误“wamp.error.procedure_already_exists”。因为被叫名称注册仍然与先前丢失的连接相关联,所以我要取消注册旧的被叫名称。

我能看到的唯一解决方案是在每个连接上生成并注册一个唯一的新被叫方名称,以避免与之前注册的被叫方名称冲突。

有没有更好或更简单的方法来处理这个问题?似乎 WAMP 协议允许使用注册 ID 从另一个连接中取消注册被调用方名称,但 Autobahn Python 客户端库似乎不允许这样做。

0 投票
1 回答
1328 浏览

python - Autobahn websocket 服务器的 ConnectionRequest.headers 中的所有 http 标头键均以小写形式出现

为什么高速公路网络套接字服务器将所有 http 标头键更改为小写?我需要在带有自定义标头“授权:Bearer $token”的 OAuth2 标准的标头中实现身份验证令牌。但似乎从 WebSocketServerProtocol 类的 onConnect 方法中的高速公路“request.headers”中,所有键都更改为小写。这背后的原因是什么?在这种情况下,我可以使用“授权”而不是“授权”作为从请求中获取身份验证令牌的密钥吗?

0 投票
1 回答
469 浏览

android - 为什么 websocket 连接会立即关闭...?

当我尝试在 android 中创建一个 websocket 连接以使用Autobahn实现 wamp时,该连接被创建并立即关闭。

为什么会这样……?怎么解决..........?

我的部分代码如下

很抱歉没有早点发布清单文件。它在下面给出..

0 投票
1 回答
218 浏览

python - Redis 操作阻止高速公路 Web 套接字服务器请求

根据我从服务器客户端获得的消息,我正在使用 redis 为我的 Web 套接字服务器(使用高速公路实现 - 基于扭曲的 Web 套接字实现)保存/更新/删除数据。对于 Redis 操作,我使用的是 redis-py 包。当有更多的并发客户端连接到我的服务器时,我可以看到以同步方式提供的请求。我发现 redis 操作阻止服务器处理并行客户端请求。为什么会发生这种情况?我该如何解决这个问题?我正在从高速公路协议类的 onMessage 函数执行 redis 操作。

0 投票
2 回答
342 浏览

python - 如何在 Autobahn 中设置组件角色

我正在使用交叉开关 0.11.1,并且我想让高速公路组件使用特定的角色。当我向我的组件添加“角色”属性时,如下所示:

运行时出现此错误crossbar start

0 投票
4 回答
763 浏览

python - 使用 tac 文件以 twistd 运行时 Autobahn websocket 问题

我有一个使用twisted 的高速公路WebSocket 框架实现的WebSocket 服务器。当程序使用 python 运行时,WebSocket 服务器运行良好。但是,如果我通过将 tac 文件创建为扭曲服务来使用扭曲服务器运行程序运行它,当任何客户端尝试建立连接并且握手失败时,我会在服务器中收到以下错误。

2015-12-08 07:17:56,022 - CRITICAL - twisted.publishToNewObserver() 154 Unhandled Error Traceback (most recent call last): File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/log.py", line 84, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/posixbase.py", line 597, in _doReadOrWrite why = selectable.doRead() --- <exception caught here> --- File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/tcp.py", line 1067, in doRead protocol = self.factory.buildProtocol(self._buildAddr(addr)) File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/twisted/internet/protocol.py", line 135, in buildProtocol p = self.protocol() File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/autobahn/websocket/protocol.py", line 665, in __init__ self.is_closed = txaio.create_future() File "/opt/nrgi-ws/nrgi-ws-virtual-env/local/lib/python2.7/site-packages/txaio/_unframework.py", line 43, in _throw_usage_error "To use txaio, you must first select a framework " exceptions.RuntimeError: To use txaio, you must first select a framework with .use_twisted() or .use_txaio()

0 投票
2 回答
4805 浏览

c++ - 连接到 Poloniex Push-API

我想连接到Poloniex 的 Push API。在他们的页面上,他们写道:

要使用推送 API,请连接到 wss://api.poloniex.com 并订阅所需的提要。

wss = WebSocket 安全 -> SSL 保护

他们还举了一个 Node.js 和 Autobahn|JS 的例子:

但是,我不想使用 JavaScript,而是使用 C++。还有一个用于 C++ 的 Autobahn-Library,称为Autobahn|CPP。我已经安装了它并尝试运行他们的订阅者示例代码,几乎没有修改(基本上只是硬编码地址和端口):

这里有几件事要解释:我通过简单地 ping api.poloniex.com找到了 IP 地址173.236.42.218

端口 443 是标准 SSL 端口。我尝试使用标准 WAMP/WebSocket 端口 8000,但服务器不接受。80也不接受。

所以如果我启动程序,输出如下:

启动io服务

连接到服务器

然后,什么也没有发生。所以代码必须停留在session_start() ,在那里执行 WS 握手,当您在第 80 行查看wamp_session.ipp时可以看到什么。

在我看来,问题在于 API 想要使用安全连接 (ws : //)。这段代码似乎没有尝试创建 SSL 加密连接,而且我不知道如何告诉会话我需要一个安全的连接。

编辑:在这个问题中,作者说 Autobahn 不能处理混合的 http/wamp 服务器,在使用 WebSocket 协议之前首先需要升级http-request。我知道 Poloniex 使用这种混合类型,但我尝试使用 Autobahn| 访问 API JS已经在那里它工作正常,也发送升级请求。所以也许这是一条高速公路| CPP问题?

编辑 2:如果上述情况属实,是否可以自己发送 Http-Update-Request,甚至可以在连接上进行 SSL 加密?我不确定,因为这可能会干扰图书馆。

0 投票
1 回答
590 浏览

android - 如何在 android autobahn websocket 中增加帧有效负载大小

我正在使用 android autobahn websocket 在 android 和 python tornado socket server 之间建立连接。

下面是在 android 中使用的高速公路 websocket 代码。

公共无效开始(){

所有消息都在 public void onTextMessage(Object payload) 方法中接收。

问题是,当我从 python 套接字服务器发送小于 128 kb 的图像时,我能够接收它。但是当我发送大小超过 128 kb 的图像时,它会显示下面提到的错误。

WebSocketException(de.tavendo.autobahn.WebSocketException:帧有效负载太大)

那么我怎样才能增加帧有效载荷大小。

0 投票
1 回答
1081 浏览

android - Android Autobahn 上的 Websockets 连接有时会丢失

我在 Android 和 iOS 上都有一个聊天应用程序。在 Android 上,我使用的是 Autobahn。在 iOS 上,我使用的是 SocketRocket。在服务器端,我使用 Autobahn for Python。

有时我的消息将无法在 Android 上发送,因为连接丢失。我在iOS上没有看到这个问题。我认为这不是服务器问题,因为它在 iOS 上一直运行良好(据我所知)。我还没有重新启动服务器或任何东西。有时这些消息可以在 Android 上运行。

这是我尝试发送消息的日志消息:

有谁知道如何解决这个连接丢失问题,或者你知道另一个适用于 Android 的 websocket 库吗?

0 投票
2 回答
8188 浏览

python-2.7 - 无法侦听错误:无法侦听任何内容:9008:[Errno 98] 地址已在使用中

我正在通过 python 在 websocket 上开发 Autobahn 的应用程序。我发现了一个问题,如果我在中断后重新启动我的服务器代码,那么我的服务器代码将向我发送如下错误:

我错误地理解,即使在中断服务器后,还有一些基本服务仍在运行,但是如何清除所有这些端口?