8.4. WEBSOCKET CLIENT

8.4.1. 概述

Websocke是一种在TCP连接上进行全双工通信的协议

8.4.2. DEMO工程

``apps/demo/demo_DevkitBoard ``

8.4.3. Websocket示例

示例说明

websocket示例工程展示了作为客户端发送数据到websocket服务器,并从服务器接收数据的示例

示例

示例代码见 apps\common\example\network_protocols\websocket\main.c, 测试时需要在 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_WEBSOCKET_TEST

操作说明

  • 示例需要运行在STA模式 (注:如何进行sta和ap切换,请参考 Wi-Fi部分 )

  • 编译工程,烧录镜像,复位启动

  • 系统启动并成功联网后,websocket客户端会循环发送数据到服务器,并接收websocket服务器的数据

示例流程如下:

  • c_main() 入口
    1. 创建任务 websocket_start

  • websocket_start 函数流程
    1. 通过 wifi_get_sta_connect_state 函数检测是否通过dhcp成功获取到ip

    2. 成功通过dhcp获取到ip后,调用 websocket_client_thread_create 创建任务 websockets_client_main_thread,退出 websocket_start

  • websockets_client_main_thread 任务流程
    1. 初始化websocket相关参数和API(注:大多数接口都是内部已经实现好,用户只需要实现回调函数用于数据处理),连接websocket服务器

    2. 连接成功后,创建 websocket_client_heart 任务和 websocket_client_recv 任务,接着循环向websocket服务器发送数据

  • websockets_callback 为接收数据回调函数,用户可以进行数据处理