Websocket ATMEL SAM4E的lws客户端
我已经为atmel sam4e生成了libwebsockets.a(lib,includes) 我需要帮助为atmel SAM4E运行一个简单的libwebsockets客户端。 我在esp32上犯了这个错误。但是我已经为atmel编译了我的LibWebSocket 在src/main.c:25中包含的文件中: ./lws/include/libwebsockets.h:266:29:致命错误:mbedtls/esp_config.h:没有这样的文件或目录Websocket ATMEL SAM4E的lws客户端,websocket,freertos,libwebsockets,tclws,Websocket,Freertos,Libwebsockets,Tclws,我已经为atmel sam4e生成了libwebsockets.a(lib,includes) 我需要帮助为atmel SAM4E运行一个简单的libwebsockets客户端。 我在esp32上犯了这个错误。但是我已经为atmel编译了我的LibWebSocket 在src/main.c:25中包含的文件中: ./lws/include/libwebsockets.h:266:29:致命错误:mbedtls/esp_config.h:没有这样的文件或目录 266 |#define MBEDTL
266 |#define MBEDTLS_CONFIG_FILE在我深入解释下一步应该做什么之前,让我先描述一下WebSocket是如何实际工作的以及您当前的位置 要建立WebSocket连接,首先需要使用HTTP与服务器“对话”,因为WebSocket的工作方式是向服务器发送一个HTTP请求,说“让我们使用WebSocket进行对话”,此时服务器响应为“好,让我们切换协议”,只有在这一点上才可以开始使用WebSocket发送数据。更进一步说,HTTP连接是通过TCP或TLS连接建立的,这取决于您是需要单向认证还是双向认证和数据加密。因此,在访问HTTP部分之前,您需要让TCP或TLS(本质上是“扩展的”TCP)工作 假设您已经完成了上面的所有工作,并且已经与服务器建立了工作WebSocket连接——实际上,仅使用原始WebSocket而不使用任何内容来交换聊天数据可能会非常乏味。当然,如果你计划只交换原始聊天信息,那没关系。然而,一旦额外的需求开始堆积起来——比如:让我们发送消息时间戳、发送者名称、图片支持、文件支持等——快速扩展会让人非常恼火,因为本质上,您必须开始开发通过WebSocket发送的自己的协议。原因是:简单的原始WebSocket只提供了“服务器发送给您X个字节,它们就在这里”。没有键值头、“消息体”部分或任何类似的概念,只有原始数据传输机制。此外,根据您的服务器使用的技术堆栈类型(或者如果您是服务器后端的开发人员,您计划自己使用),使其使用原始WebSocket可能更难,而不是在其上运行的东西。为了给你我的经验,就我个人而言,我推荐一些类似于跺脚协议的东西。它非常简单,甚至可以在一两天内实现它的基本机制,但它给了您更多的灵活性 为了总结以上所有内容,以下是您未来的“大图”: 现在(最后)从下往上看你现在的处境以及下一步应该做什么: 您提到您已使用某种调制解调器成功连接到GSM网络。我假设您仅使用AT命令“连接到网络”/BTS,但尚未建立数据连接-以访问“我有TCP工作”部分。在这里,您可以选择两条路径:
GET /chat HTTP/1.1
Host: server.example.com
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com
一旦服务器响应,您就应该有一个工作的WebSocket连接,在这个连接上您可以实现(或准备好实现)WebSocket协议,并且可能会在上面运行您自己的协议。在我深入解释下一步应该做什么之前,先做一个总结,首先让我描述一下WebSocket是如何实际工作的,以及您目前的位置 要建立WebSocket连接,首先需要使用HTTP与服务器“对话”,因为WebSocket的工作方式是向服务器发送一个HTTP请求,说“让我们使用WebSocket进行对话”,此时服务器响应为“好,让我们切换协议”,只有在这一点上才可以开始使用WebSocket发送数据。更进一步说,HTTP连接是通过TCP或TLS连接建立的,这取决于您是需要单向认证还是双向认证和数据加密。因此,在访问HTTP部分之前,您需要让TCP或TLS(本质上是“扩展的”TCP)工作 假设您已经完成了上面的所有工作,并且已经与服务器建立了工作WebSocket连接——实际上,仅使用原始WebSocket而不使用任何内容来交换聊天数据可能会非常乏味。当然,如果你计划只交换原始聊天信息,那没关系。然而,一旦额外的需求开始堆积起来——比如:让