【开发实录】在鸿蒙开发板上使用websocket(移植自librws库) 精华
librws: Tiny, cross platform websocket client C library
相关代码可在下面下载,也可进入librws: 将librws移植到鸿蒙Hi_3861开发板上 (gitee.com)查看
技术有限,如有错误还望不吝赐教。
基础:完成官方的快速入门教程
虽然在web双向通信中,除了使用ajax(单向轮询)外,一般都推荐websocket,但网上关于websocket的实现代码很少,而且大部分为js和java,很少有C语言。因为课程项目开发需要使用到websocket,就在网上寻找了挺久的,终于找到了这个库。相对于其他库来说,这个库需要跨平台的代码都用了一层适配层,而且没有用到其他例如libevent等其他库,用他的话说就是"No additional dependecies",所以移植挺方便的。然后因为这个库除了windows平台外,其他平台都是使用POSIX接口,而Hi_3861上只有POSIX的声明,但并没有实现(详细可看【开发实录】在Hi3861开发板上创建线程(三种方式)-鸿蒙HarmonyOS技术社区-官方战略合作伙伴-51CTO.COM里面有所说明)。所以适配相关的函数以及处理一些小细节。
这篇文章主要介绍如何使用,下一篇可能会介绍如何移植,大家有需求的话,可先学习连志安老师的如何在鸿蒙系统中移植 Paho-MQTT 实现MQTT协议-鸿蒙HarmonyOS技术社区-官方战略合作伙伴-51CTO.COM文章,这篇文章有挺大的参考价值的。
1、向项目中导入此库
下载下面的librws资源放至//third_party目录下,然后在//vendor/hisi/hi3861/hi3861/BUILD.gn文件中的lite_component("sdk")-->deps下添加 "//third_party/librws:librws_static" 这样就可以在下次编译时将相关代码编译成库放进项目内了。
2、编写应用代码
先使用板子连接上wifi,具体操作可查看Hi3861 WiFi操作,热点连接-鸿蒙HarmonyOS技术社区-官方战略合作伙伴-51CTO.COM,需要注意,连接WiFi后要sleep一段时间。下面资源有相关代码。
然后配置相关信息
注意配置信息一定要对应真实信息,下面我会分享我的websocket服务端测试代码。
然后配置回调函数
需要注意一个地方,在接受信息回调函数中,原仓库的测试代码是直接打印text,但测试发现,text变量除了接受到的信息还会包括一部分乱码,所以使用了memcpy_s函数复制有效的信息在打印。大家编写接受回调函数时需要注意这个地方。
接下来就是连接,发送消息以及关闭了
3、测试代码
服务器代码使用的是golang,详细代码在下方下载。在代码文件当前目录运行命令:
4、其他文章
下载下来学习一波,,感谢分享。
请问大神,迁移方法是咋样的
收藏,学习起来。
你是说移植过程吗?我下个帖子应该会叙述一下,敬请期待
Cooooooooooool.