ESP32——Websocket客户端测试

本文介绍了WebSocket的测试工具,包括命令行工具wscat的安装与使用方法,以及Bittly工具在WebSocket、串口等通信协议测试中的应用。同时,提供了测试WebSocket客户端的步骤,强调了修改服务端IP和端口号的重要性,并提到在线测试工具的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

参考示例:官方示例/protocols/websocket。

参考说明:  官方说明

二、Websocket测试工具

1. wscat工具

wscat为命令行工具,可以作为Websocket客户端或服务端。

1.1 安装

1.1.1 首先安装noodjs

1.1.2 安装好后,打开命令行,输入npm install -g wscat 回车创建全局wscat工具

1.2 使用

1.2.1 创建Websocket服务端

打开一个命令行窗口,输入命令: wscat -l 8888

1.2.2 创建Websocket客户端

另外打开一个命令行窗口,输入命令: wscat -c ws://localhost:8888 

1.2.3 测试

客户端与服务端连接后,就可以分别在两个窗口中输入字符相互发送了

2. Bittly工具

Bittly是复合工具包,可用于Websocket、串口、网口、蓝牙、Http、MQTT测试。

网址: Bittly 不止是一个串口调试助手 (~ ̄▽ ̄)~

使用可看官方说明,比较喜欢其具有字符或十六进制格式(因目前主要用十六进制)。

3. 在线测试工具

找到的几个可用但有广告,且不能从服务端发送自己指定的数据。

三、测试Websocket客户端例程

1. 根据示例创建工程

2. 修改WIFI用户和密码

3. 修改程序中服务端IP和端口号:

websocket_cfg.uri = "ws://192.168.1.20:8888";

4. 最后利用上面wscat工具创建的Websocket服务和编译下载例程进行收发数据测试。

注:因自己主要是Websocket客户端应用,所以后来用的基本是Bittly工具的Websocket服务端。

### ESP32 MicroPython WebSocket 实现 在ESP32上使用MicroPython实现WebSocket通信涉及创建一个WebSocket客户端或服务器实例,并通过该实例发送和接收消息。对于建立WebSocket连接,需要初始化网络接口并配置必要的参数。 #### 创建WebSocket Server 为了设置WebSocket服务端,在ESP32设备中运行如下代码可以启动一个基本的服务端程序: ```python from websocket import serve import network def handle_connection(websocket, path): while True: message = websocket.recv() if message is None: break print("Received:", message) # 启动Wi-Fi连接 wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): wlan.connect('SSID', 'PASSWORD') # 替换为实际的WiFi SSID和密码 while not wlan.isconnected(): pass print('Network config:', wlan.ifconfig()) serve(handle_connection, "0.0.0.0", 8765) # 可更改监听地址与端口 ``` 这段脚本会等待来自任何IP地址的新连接请求,并调用`handle_connection()`函数处理传入的数据流[^2]。 #### 构建WebSocket Client 当作为客户端操作时,则需主动发起至目标主机的链接请求。下面是一个简单的例子展示怎样向远程WebSocket服务器发送一条测试信息: ```python from websocket import create_connection ws = create_connection("ws://echo.websocket.org/") # 远程WebSocket URL try: ws.send("Hello, World") result = ws.recv() print("Received '%s'" % result) finally: ws.close() ``` 此段落说明了如何构建一个基础的WebSocket客户机应用程序,它能够连接到指定的目标URL并通过其交换数据包[^4]。 #### 控制LED灯状态 结合上述知识点,如果目的是让另一个ESP32模块上的LED响应特定命令而改变亮灭情况的话,可以在接收到相应指令后执行GPIO写入动作来达成目的。例如,在接收到字符串"On"时点亮LED;反之则熄灭之。 ```python import machine led_pin = machine.Pin(2, machine.Pin.OUT) def toggle_led(state_str): state = False if state_str.lower() != 'on' else True led_pin.value(int(state)) ``` 以上部分展示了针对具体应用场景——即控制外设硬件(如LED)的操作逻辑[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值