基于LuatOS的WebSocket核心库,通过极简API和实用demo,助力开发者轻松构建具备工业级可靠性的双向实时通信应用。

一、WebSocket基础知识

1.1  什么是Websocket?

WebSocket是HTML5下一种新的协议(本质上是一个基于TCP的协议),主要解决传统HTTP协议在 “实时通信” 场景下的效率问题。

它实现了浏览器与服务器之间的全双工通信,能够节省服务器资源和带宽,达到实时通讯的目的。

WebSocket协议通过握手机制,允许客户端和服务器之间建立一个类似TCP的连接,从而方便它们之间的通信。

1.2  WebSocket核心工作机制

1)全双工通信模式:

  • WebSocket提供真正的全双工通信通道,允许客户端和服务器之间同时发送和接收数据。

  • 一旦连接建立,客户端和服务器可以主动向对方发送消息,而不需要像HTTP一样每次都要发起请求。

  • 这种模式实现了实时通信,适用于需要低延迟和高频率数据交换的场景。

  • 协议标识:
    非加密连接:ws://;加密连接:wss://。

2)持久化连接与握手过程:

  • WebSocket连接通过一次HTTP握手升级而来。

    客户端发送一个HTTP请求,包含:

    Upgrade: websocket和Connection: Upgrade等头部。

  • 服务器同意升级后,连接即转变为WebSocket连接,此后通信不再遵循HTTP协议。

  • 连接建立后保持打开状态,避免了HTTP频繁建立和断开连接的开销。

1.3  WebSocket主要优势

  • 实时性:
    支持服务器主动推送,延迟低,适用于实时应用。

  • 减少带宽消耗:
    相比HTTP轮询,WebSocket减少了不必要的HTTP头开销和连接建立断开的开销。

  • 双向通信:
    客户端和服务器可以平等地发送消息。

  • 兼容性好:
    现代浏览器和大多数后端语言都支持WebSocket。

  • 安全性:
    WebSocket支持使用TLS加密(即wss协议),提供安全通信。

1.4  WebSocket典型应用场景

  • 工业设备远程监控:
    实时传输设备状态、运行参数和告警信息。

  • 智能家居控制:
    家电状态实时同步和远程控制指令下发。

  • 能源管理系统:
    实时监控电表、水表、燃气表数据。

  • 环境监测与农业物联网:
    环境监测站、灾害预警系统、智慧农业远程控制等。

  • 安防与应急系统:
    消防监测系统、应急响应设备、智能安防系统。

  • 智慧城市:
    停车管理系统、公共设施监控、智能路灯控制等。

二、最新demo及实操教程

Air8000示例持续更新中,源码开放。当前WebSocket功能示例结合不同网卡应用进行演示(单4G网卡、单Wi-Fi网卡、单SPI以太网卡、多网卡),完整demo源码及实操教程详见下方链接。

最新源码下载:
https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/WebSocket

实操教程详见:
https://docs.openluat.com/air8000/luatos/app/socket/websocket/

1B7217C9E9F4841CA0EF32D6FEA16D90.png

▼  应用模块简要说明  ▼

  • main.lua:主程序入口;

  • netdrv_device.lua:
    网卡驱动设备,可以配置使用netdrv文件夹内的四种网卡(单4G网卡、单Wi-Fi网卡、单SPI以太网卡、多网卡)中的任何一种网卡;

  • websocket_main.lua:
    WebSocket client连接以及数据收发处理主逻辑;

  • websocket_receiver.lua:
    WebSocket client数据发送处理模块;

  • websocket_sender.lua:
    WebSocket client数据接收处理模块;

  • network_watchdog.lua:
    网络环境检测看门狗;

  • timer_app.lua:
    通知websocket client定时发送数据到服务器;

  • uart_app.lua:
    在websocket client和uart外设之间透传数据;

  • sntp_app.lua;
    发起ntp时间同步动作。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐