ESP32开发WebSocket报错TRANSPORT_WS: Sec-WebSocket-Accept not found

2024-04-26 07:04

本文主要是介绍ESP32开发WebSocket报错TRANSPORT_WS: Sec-WebSocket-Accept not found,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的芯片是ESP32-S3,用ESP-IDF框架进行开发的时候,用官方的WebSocket的example创建了项目。然后把WebSocket连接uri替换为自己的服务器后,运行到esp_websocket_client_start开始连接后,直接报错:

E (10615) TRANSPORT_WS: Sec-WebSocket-Accept not found
E (10615) WEBSOCKET_CLIENT: Error transport connect

但是同样的地址,我在Postman里面,可以正常连接上。看这个报错,应该说是服务器没有返回Sec-WebSocket-Accept头信息,找不到这个。

但是,我在Postman中,看到服务器是有返回这个头的。

那就不知道是啥情况了,搞不明白。看了官方的github中,也有针对这个问题的讨论。

具体地址:(IDF Websocket client) - TRANSPORT_WS: Sec-WebSocket-Accept not found (IDFGH-11911) · Issue #12993 · espressif/esp-idf · GitHub

貌似是说,服务器端是支持ws和wss协议的,而esp32中的esp_websocket_client不支持redirects重定向,当然我的服务器也是2种协议都支持的。感觉这问题无解,如果你有解请评论区告诉我。我的解决办法是,从ws改成wss协议的。

修改后,运行却又报错了。

E (12436) esp-tls-mbedtls: No server verification option set in esp_tls_cfg_t structure. Check esp_tls API reference
E (12436) esp-tls-mbedtls: Failed to set client configurations, returned [0x8017] (ESP_ERR_MBEDTLS_SSL_SETUP_FAILED)
E (12456) esp-tls: create_ssl_handle failed
E (12456) esp-tls: Failed to open new connection
E (12466) TRANSPORT_BASE: Failed to open a new connection
E (12466) TRANSPORT_WS: Error connecting to host metamind.cn:443
E (12476) WEBSOCKET_CLIENT: Error transport connect

这个貌似是证书的问题,需要把服务器证书down下来一起烧录进去。比较麻烦。索性在配置中修改以下配置:

勾上这2个选项即可。

问题解决可用了。

这篇关于ESP32开发WebSocket报错TRANSPORT_WS: Sec-WebSocket-Accept not found的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936893

相关文章

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis