嵌入式开发(六):websocketpp服务端海思交叉编译及使用

姓名:范雪元

学号:19020100086

学院:电子工程学院

以下文章来源于:https://blog.csdn.net/zh8706/article/details/113893799

【嵌牛导读】:websocketpp服务端海思交叉编译及使用

【嵌牛鼻子】:海思交叉编译及使用

【嵌牛提问】:通过websocketpp服务端怎么实现海思交叉编译及使用?

【嵌牛正文】:

前提条件:需先编译好boost库,参考我的另外一篇文章

嵌入式开发(五):海思Hi3559AV100交叉编译boost

1.下载websocketpp

下载路径https://github.com/zaphoyd/websocketpp/

得到websocketpp-master.zip

解压得到websocketpp-master目录

2. 编译server

进入websocketpp-master/examples/telemetry_server

这里使用/telemetry_server的原因是这个sample包含了一个index.html文件

在当前目录下编写Makefile文件(如下),注意下面路径设置了

CC :=aarch64-himix100-linux-g++

LDLIBS :=-lboost_system -lpthread

CFLAGS :=-std=c++11

INC_FLAGS :=-I../../

INC_FLAGS +=-I/mnt/hgfs/ubuntu_share/boost_1_70_0

LDFLAGS :=-L/mnt/hgfs/ubuntu_share/boost_1_70_0/stage/lib

TARGET:=telemetry_server

$(TARGET):telemetry_server.cpp

$(CC) telemetry_server.cpp $(LDLIBS) $(CFLAGS) $(INC_FLAGS) $(LDFLAGS) -o $@

上面路径INC_FLAGS指定了两个头文件目录:

(1)websocketpp头文件所在目录,websocketpp-master目录下有一个websocketpp目录,此为头文件所在位置

(2)boost头文件所在目录,boost_1_70_0目录下有一个boost目录,此为boost头文件所在位置

LDFLAGS指定了boost lib文件所在位置

在当前目录下运行make, 即可得到telemetry_server可执行文件

3. 运行telemetry_server

使用MobaXterm等工具等到到hi3559Av100开发板

使用tftp将telemetry_server与index.html文件传输到hi3559Av100开发板上,例如放到/root/web目录下,

使用chmod 777 改变文件权限:

chmod 777 telemetry_server

运行telemetry_server

./telemetry_server ./ 9002

第1个参数指定index.html文件所在位置, 9002为http及websocket服务端的端口号

运行起来后可以看到打印:

在电脑上打开浏览器,输入网址:http://10.1.20.24:9002/

其中10.1.20.24为Hi3559av100开发板的IP地址,


电脑端浏览器页面右侧则出现了两行控件:


这里显示的就是开发板中inde.html里所写的代码的呈现效果,第一行的localhost为html文件里的静态值,我们在输入框里改为:ws://10.1.20.24:9002, 再点击connect按钮

终端中打印如下,表示server端已接收到websocket的客户端链接


浏览器端页面打印如下:


这些打印是websocket服务端主动推送到浏览器Client端的打印输出。

我们将在下篇文章中讲解telemetry_server的代码原理。

————————————————

版权声明:本文为CSDN博主「夜风里唱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zh8706/article/details/113893799

你可能感兴趣的:(嵌入式开发(六):websocketpp服务端海思交叉编译及使用)