- 由于搭建消息服务器(流媒体服务器和开发板)存在局限性,决定直接搭建web端与板端的mqtt消息服务器
web与开发板端到端进行通信优势在于:
开发板可以发送心跳包消息给WEB,WEB进行可视化开发板状态和媒体通路信息。
也可以发送RTSP数据流给流媒体服务器,再通过webrtc协议发送给WEB,WEB进行观看实时数据流。
而之前流媒体服务器和开发板消息服务器问题在于,开发板需要使用mqtt协议,先发送到流媒体服务器,让流媒体服务器做了不应该做的事情。
然后流媒体服务器通过sctp协议再发送给网页,也需要把视频数据发给网页。网页发数据给板子,也是需要经过流媒体这个中间人进行转发。
所以应该直接搭建web端的mqtt。
真实的场景可能会存在的问题,客户电脑配置比较差。
因此流媒体服务器是要搭建在开发板的,N路IPC的输入数据源通过国标/RTSP协议发送网线发送到AIBOX开发板
然后开发板的流媒体服务器进行转换之后,送给AI进行推理,然后推理结果反馈在原图上并且硬件编码,再通过rtsp协议推流到流媒体服务器
流媒体服务器通过webrtc发送给网页预览以及开发板的心跳包发给流媒体服务器。
Linux下安装EMQX服务器
之前已经安装过emqx的mqtt服务器了,可以通过ps -axu | grep emqx查看是否开启。
#重新安装方法
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
sudo apt-get install emqx
sudo systemctl start emqx
sudo systemctl emqx start #启动
sudo systemctl emqx stop #停止
sudo systemctl emqx restart #重启
打开浏览器可以配置mqtt服务器信息,url为:192.168.0.62:18083
本地ip:192.168.0.62,端口号默认为18083
默认用户名和密码:用户名:admin,密码:public
- 更多可以参考:https://download.youkuaiyun.com/blog/column/10192120/134290374。
可以实现mqtt web和ubuntu之间能否相互订阅消息,从而通信。
板子如何实现mqtt客户端。
git clone https://github.com/eclipse/paho.mqtt.embedded-c
#修改点1:Cmakelist
#set(CMAKE_C_COMPILER "交叉编译工具链绝对路径/aarch64-none-linux-gnu-gcc")
#set(CMAKE_CXX_COMPILER "交叉编译工具链绝对路径/aarch64-none-linux-gnu-g++")
#修改点2:修改hello代码,路径为MQTTClient/sample/linux/hello.cpp
## topic为与订阅者一致,修改host ip
mkdir build && cd build
cmake ..
make
##拷贝hello可执行文件和libMQTTPacketClient.so动态库到板子运行
export LD_LIBRARY_PATH=/mnt/:$LD_LIBRARY_PATH #指定路径
现在搭建完成ubuntu的开发板环境,已经完成板子和网页的相互交互以及传数据。
接下来实现板子如何发送心跳包给web,然后web进行解析。