BeagleBone -> HTML -> C++ 通信
Posted
技术标签:
【中文标题】BeagleBone -> HTML -> C++ 通信【英文标题】:BeagleBone -> HTML -> C++ communication 【发布时间】:2014-08-06 15:59:02 【问题描述】:我已经成功地将我的 beaglebone 配置为托管一个网站,现在我想让网站查看器也能够与运行在 beaglebone 上的 C++ 程序进行通信。我已经阅读了一些内容并有一些想法,但我对我需要的部分没有一个可靠的概念化,所以我正在寻找一些建议。
我想要双向通信,我想要低延迟,并且对我发送/接收的数据类型的限制有限。
我已经阅读了一些关于 WebSockets 的文章,它看起来可以提供我想要的东西,但我很难理解如何在我的 C++ 程序中运行 WebSocket,以及是否有中间人(WebSocket 服务器?)。
在我解决这个问题时,如果您对我有任何建议或建议阅读,请告诉我。
【问题讨论】:
【参考方案1】:您可能对AutobahnCpp 感兴趣。这可以用来做以下架构:
Your C++ Component <--WAMP-over-RawSocket--> WAMP Router <-- WAMP-over-WebSocket --> Browser
WAMP 允许双向实时消息传递:远程过程调用以及发布和订阅。
例如您可以在浏览器中实时可视化来自 C++ 的数据。或者您可以在浏览器中从 javascript 调用 C++。
这里有一些提示:
https://github.com/tavendo/AutobahnCpp/ http://crossbar.io/docs/Getting-started-with-Cplusplus/ https://github.com/crossbario/crossbar/blob/master/crossbar/crossbar/templates/hello/cpp/hello.cpp https://github.com/crossbario/crossbar/blob/master/crossbar/crossbar/templates/hello/cpp/web/index.html【讨论】:
感谢您的建议,我目前正在考虑实施此建议。为了确保我的理解是正确的,我会在 BBB 上托管一个 wamp 路由器(可能使用 CrossBar.io),然后在我的 c++ 程序中使用 AutoBahnCpp 与路由器通信,并在我的 html 代码中使用 AutoBahnJS 与路由器。那是对的吗?我找到了 WAMP 的 google 组,您还有其他建议的资源吗?如您所知,WAMP 名称有几个与网络相关的不同含义,因此为它找到好的资源并不容易。谢谢! 是的,我知道,“WAMP”这个名字被重载了。以下是在 Web 上搜索内容的一些提示:wamp.ws/faq/#naming。我推荐两个资源:wamp.ws/why 和tavendo.com/blog/post/is-crossbar-the-future-of-python-web-apps(这有点侧重于 Python,但也可以转换为其他语言)。关于您的理解:是的,完全正确。这是一种选择。 BBB 上的路由器和 C++ 组件。 HTML/JS 只是通过 HTTP 提供的文件(也可以从 Crossbar 完成)。另一种选择是:BBB 上的 C++ 组件,但路由器位于云端。零代码更改。 不幸的是,我的 debian 安装有 GCC 4.6,这似乎导致 AutoBahnCpp 的编译器错误,有什么建议吗? pastebin.com/s3KcXyHZ 我可能会更新我的 GCC,但这不是我喜欢的解决方案……如果您认为我的错误可能在其他地方,请告诉我。谢谢。 我的建议是:首先在带有 clang 的桌面 Linux(如 Ubuntu 14)上尝试您的确切代码。如果它有效,gcc 会让你失望。如果是这种情况(gcc):对不起,我没有时间摆弄 gcc。 @fooOnYou 要安装带有 msgpack 支持的交叉开关(可选),请执行pip install crossbar[msgpack]
。安装横杆和所有可选的东西做pip install crossbar[tls,msgpack,manhole,system]
。以上是关于BeagleBone -> HTML -> C++ 通信的主要内容,如果未能解决你的问题,请参考以下文章
BeagleBone Black–ESP8266 UDP 服务
Beaglebone Black–用 UART 连接 ESP8266 (ESP-01 版)
Beaglebone Black – 连接 GY-91 MPU9250+BMP280 九轴传感器
Beaglebone Black–GPIO 开关 LED(三极管与继电器实验)