玩转 LiteOS 组件:玩转 Librws
本文分享自华为云社区《LiteOS组件尝鲜-玩转Librws》,作者: W922 。
本期小编为大家带来 LiteOS 开源版本 Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅吧!
基本介绍
Librws 是一个跨平台的 websocket 客户端,使用 C 语言编写。它有如下特点:
无其他依赖关系
带有公共方法的单独的公共方法库 librws.h
线程安全
后台线程中的发送/接收逻辑
详情参考:https://github.com/OlehKulykov/librws。
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。
详情参考:https://baike.baidu.com/item/WebSocket/1953845?fr=aladdin。
使能 Librws Demo
在 LiteOS 源码根目录下根据实际使用的开发板,拷贝 tools/build/config/目录下的默认配置文件 ${platform}.config 到根目录,并重命名为.config。
注意:根据 Librws 所需资源,暂时只支持在 STM32F769 开发板上运行 LibrwsDemo。
在 LiteOS 源码根目录下执行 make menuconfig 命令,按如下菜单路径使能 Librws Demo。
注意:使能 Librws Demo 后会自动使能 Librws 组件和 LWIP。
保存退出后,会从 github 上自动下载 Librws 源代码,并从 gitee 上下载适配于 LiteOS 系统的 patch 包,并打入 patch。详细流程在 components/download.sh 文件中。
注意: 下载需要 Linux 主机可以访问互联网,并安装 git。
编译运行 Librws Demo
服务端配置
服务端代码路径为 LiteOS/demos/librws/websocketserver.py,需要 python3 环境可运行。启动服务端步骤如下(命令行操作):
修改服务端代码中的变量的 ip 为服务器 ip 地址。
通过 python pip 命令安装 websocket 包。
运行 websocketserver.py 脚本。
客户端配置
Librws Demo 需要网络连接,在 STM32F769 开发板插入网线,并确保网络连接。客户端操作步骤如下:
修改 LiteOS/demos/librws/librws_demo.c 中的 WEBSOCKET_DEMO_SERVER 为服务端 IP 或域名。
注意: 改为域名需要开启 LWIP_DHCP(DNS 需要 DHCP 来初始化,在 Linux 下编译,使能 LWIP 会默认开启 DHCP)。
修改 Kernel 中默认任务栈大小。在 LiteOS 源码根目录下执行 make menuconfig 命令,按如下菜单路径设置,修改为 4096。
编译烧录
在 LiteOS 源码根目录下执行 make clean; make -j 命令编译 LiteOS 工程,编译成功后会在 out/{platform}/lib 路径下生成 liblibrws.a 和 liblibrws_demo.a 文件,系统镜像文件为 Huawei_LiteOS.bin。
烧录操作请参考 https://gitee.com/LiteOS/LiteOS/blob/master/doc/LiteOS_Quick_Start.md。
启动 LiteOS 后会先初始化网络,开启 DHCP,然后运行 Librws Demo,建立 websocket 连接并向服务端发送数据,服务端接收到数据后会返回数据,运行结果如下:
以上为“Librws”使用说明的全部内容,欢迎大家学习交流。
结语
未来我们还会持续新增更多组件、开发板、架构、特性等。
感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:
https://gitee.com/LiteOS/LiteOS/issues。
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/7a1424358b400fbb249e683be】。文章转载请联系作者。
评论