ESP32作为客户端通过websocket连接后端
库的选择
#include <ArduinoWebsockets.h>
#include "FS.h"
#include <ArduinoJson.h>
博主这里选择了arduino官方的websocket库去服务器后端相连
因为是与后端相连 所以还要用上json的处理
初始化
const char *djangoServer = ""; // Django服务器IP地址
const int djangoPort = ; // Django服务器端口号
后端用的是django 实际上只要是websocket 都一样
接入公网的形式我采用了简单的wifi连接上网
const char *ssid = ""; // wifi ssid
const char *password = ""; // 密码
void WiFi_Connect()
{
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
// 直到连接成功
delay(300);
Serial.print(".");
}
}
连接
if (client.connect(djangoServer, djangoPort, "/"))
{
Serial.println("WebSocket connected.");
}
else
{
Serial.println("Failed to connect to WebSocket server.");
}
接收
if (client.available())
{
client.onMessage([&](WebsocketsMessage receivedData)
{
Serial.print("Got Message: ");
message= receivedData.data();
Serial.println(receivedData.data()); });
// 解析JSON数据
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, message);
if (!error)
{
String class_ = doc["msg"];
}
}
特别说明这里接收是字符串形式
但是后端发的是json
我们需要处理后才能使用
就用上之前的json库了
发送
client.send("***");
是的就是如此简单
感觉像水了一期
^ _ ^ 欢迎大家来我的网站一起研究
titochan.top