嵌入式开发(六):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的代码原理。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值