使用libwebsocket写一个server

lws-minimal-ws-server这些例程在buildroot里面,更新的话只能整体编译,十分麻烦和耗时,在sdk外面建立项目,单独开发,会更合适。

创建程序文件夹和文件

bash 复制代码
mkdir ./ws_cam
cd ./ws_cam
cp ../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/libwebsockets-4.3.2/minimal-examples/ws-server/minimal-ws-server/*.c ./
thouch ./CMakeLists.txt

编辑源代码

用vscode打开ws_cam目录,修改里面的源代码

CMakeLists.txt

bash 复制代码
project(ws_cam C)
cmake_minimum_required(VERSION 2.8.12)

include_directories(../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include)
link_directories(../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib)

set(CMAKE_C_COMPILER ../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc)
set(CMAKE_CXX_COMPILER ../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++)
set(EXC ws_cam)
set(SRCS minimal-ws-server.c )


add_executable(${EXC} ${SRCS})
target_link_libraries(${EXC} websockets ssl crypto blkid z)

minimal-ws-server.c

c 复制代码
static const struct lws_http_mount mount = {
	/* .mount_next */		NULL,		/* linked-list "next" */
	/* .mountpoint */		"/",		/* mountpoint URL */
	/* .origin */			"/oem/usr/www",  /* serve from dir */
	/* .def */			"index.html",	/* default filename */
	/* .protocol */			NULL,
	/* .cgienv */			NULL,
	/* .extra_mimetypes */		NULL,
	/* .interpret */		NULL,
	/* .cgi_timeout */		0,
	/* .cache_max_age */		0,
	/* .auth_mask */		0,
	/* .cache_reusable */		0,
	/* .cache_revalidate */		0,
	/* .cache_intermediaries */	0,
	/* .origin_protocol */		LWSMPRO_FILE,	/* files in a dir */
	/* .mountpoint_len */		1,		/* char count */
	/* .basic_auth_login_file */	NULL,
};

这里把前端的根目录文件夹指定为上次vue3前端的根目录/oem/usr/www

编译测试

bash 复制代码
cmake ./
make
scp ./ws_cam root@192.168.9.163:/oem/usr/bin

在rv1106摄像头上运行ws_cam

bash 复制代码
/oem/usr/bin/ws_cam

用浏览器打开网址

192.168.9.163:7681

可见vue3欢迎页面

相关推荐
Ruiery7 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包7 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
wjkjpcba8 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭9 小时前
达梦事物特性及MVCC
linux·运维·数据库
福兮说9 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理10 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆66610 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)10 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
羔羊++11 小时前
18_实验十七_其他命令与自定义启动变量
linux
码艺-Alimjan11 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js