问题标签 [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.
android - 当android应用程序进入后台时Websocket暂停
我的 android 应用程序启动了一个服务,该服务打开一个 websocket 以与远程服务器通信。该服务生成一个线程,其运行方法如下所示。
当我关闭屏幕或将应用程序发送到后台时,logcat 显示循环正在运行,但远程服务器停止接收测试消息。显然,消息在某个地方汇集,因为一旦应用程序回到前台,服务器将收到一堆测试消息。这是 Android 上的预期行为吗?我尝试了不同的 Websocket 包(Autobahn、okhttp3、...),结果是一样的。
beagleboneblack - Crossbar 说“没有被调用者注册程序”
尽管有两个节点连接到我的本地网络上的交叉路由器,但他们没有看到对方,浏览器控制台说:
浏览器控制台:
横杆版本:
从 crossbar 开始的日志 - 您可以看到后端 python 脚本和浏览器已在底部加入:
我有:
- 确认两者都在尝试加入相同的 URI:
com.at.mcu.e6a003528063
。 - 发现将相同的浏览器和 python 代码放在另一台机器上时可以正确连接(运行稍微不同版本的 Debian 的 BeagleBone Black Wireless)。出于这个原因,我认为这与交叉开关的安装和/或配置有关。
- 在工作机器(可以工作)和非工作机器(不工作)上的新 virtualenv 中从头开始重新创建横杆。
- 确认 .crossbar/config.json 是相同的。
autobahn - 使用带有 AutobahnWS 的装饰器方法,如何独立于订阅回调和它的 Session-Reference 发布消息?
在使用 Autobahn 和 WAMP 之前,我一直在使用子类化方法,但偶然发现了装饰器/函数方法,我真的更喜欢子类化。
然而。我有一个从外部硬件(通过回调)调用的函数,该函数需要在被调用时发布到 Crossbar.io 路由器。
这就是我这样做的方式,在调用Session
之后保留对权利的引用。on_join -> async def joined(session, details)
这种在组件加入连接后保持引用的方法感觉有点“奇怪”。对此有不同的方法吗?这可以通过其他方式完成。
如果不是这样的话,子类化和在该子类中包含所有应用程序依赖的代码感觉更“正确”(但是将我的应用程序的所有内容都保留在一个子类中也感觉很奇怪)。
websocket - Websockets:npm 的 Rachet 和 autobahn 是否兼容?
我正在试验Ratchet php 库。特别是,我一直在尝试将他们的推送集成演示集成到 React 应用程序中。
他们的演示引用了一个看似一次性的高速公路 JS 库版本,它与我的服务器实现(几乎是他们的演示的副本)相悖。
但是,当我尝试从 npm 使用高速公路 JS 时,一切都崩溃了。似乎这实现了更新版本的 Web Sockets 协议?
一次性版本的高速公路通行证wamp
用于Sec-WebSocket-Protocol
标头,Ratchet 似乎支持。高速公路的 npm 版本通过wamp.2.json, wamp.2.msgpack
...
挖掘棘轮代码我发现了这个
如果堆栈中的任何组件支持 WebSocket 子协议,则返回每个支持的数组
所以我Ratchet\WebSocket\WsServerInterface
在我的组件上实现了
现在连接尝试更进一步,但仍然爆炸
由于违反协议而导致传输失败:意外消息类型 0
然后客户端关闭连接失败
未捕获的 DOMException:无法在“WebSocket”上执行“关闭”:代码必须是 1000,或者介于 3000 和 4999 之间。1002 两者都不是。
这里发生了什么; Ratchet 是否支持旧版本的 Web Socket 协议,或者有没有办法让这两个库成功通信?
multithreading - 使用 cmake 和 make 编译时出现“Boost”库问题-“未定义的引用错误”
我正在研究 WAMP 和交叉开关。我正在尝试使用cmake
和make
命令编译和构建可执行文件。运行良好,cmake
即在命令期间没有错误,cmake
但在make
命令期间我面临如下所示的错误。我在编译时遇到了链接 Boost 库,但不知道如何使用cmake
.
以下是make的日志:
sudo apt-get install libboost-all-dev
我使用“ ”安装了 Boost 库
任何建议都会对我有很大帮助。