Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ESP32 Websocket JavaScript_Websocket_Message_Addeventlistener_Esp32 - Fatal编程技术网

ESP32 Websocket JavaScript

ESP32 Websocket JavaScript,websocket,message,addeventlistener,esp32,Websocket,Message,Addeventlistener,Esp32,你好 我读了很多书,但哪儿也去不了。据我所知,所有的信息都是在onmessage上到达的?!随机数传输速度并将数据发送到客户端。工作到目前为止,但现在我想发送另一个速度信号“Rpm2=randomNumber2”和停止信号。 我想我会在ws.onmessage下使用if()管理数据。但我不知道如何分离数据。我很抱歉我的无知,希望你能帮助我 我应该如何分离数据?我用if()尝试了不同的变体。我是否必须更改globalClient->Text的某些内容 谢谢你,并致以最良好的问候 float rp

你好

我读了很多书,但哪儿也去不了。据我所知,所有的信息都是在onmessage上到达的?!随机数传输速度并将数据发送到客户端。工作到目前为止,但现在我想发送另一个速度信号“Rpm2=randomNumber2”和停止信号。 我想我会在ws.onmessage下使用if()管理数据。但我不知道如何分离数据。我很抱歉我的无知,希望你能帮助我

我应该如何分离数据?我用if()尝试了不同的变体。我是否必须更改globalClient->Text的某些内容

谢谢你,并致以最良好的问候


float rpm = 123;
float rpm2 = 12;

AsyncWebServer server(80);
AsyncWebsocketClient * globalClient = NULL;

Void onWsEvent(AsyncWebSocket * server, AsyncWebsocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){

if(type == WS_EVT_CONNECT){
globalClient = client;
}
else if(type == WS_EVT_DISCONNECT){
globalClient = NULL;
}
}

Void SendRpm() {
if(globalClient != NULL && globalClient->status() == WS_CONNECTED) {
if(rpm > 10) {
String randomNumber = String(rpm);
globalClient->text(randomNumber);
}
if(rpm2 > 10) {
String randomNumber2 = String(rpm2);
globalClient->text(randomNumber2);
}
}
}

Client side:

var ws = new Websocket(“ws://……./ws”);

ws.onopen = function() {
console.log(“Connected”);
};

ws.onclose = function() {
console.log(“Disconnected”);
};

ws.onopen = function() {
console.log(“Connected”);
};

ws.addEventListener(“message“, function (evt) { 
console.log(“Received: “ + evt.data);

if(typeof (evt.data) !== “randomNumber“) { document.getElementById(“rpm1value”).value = evt.data;
}
if(typeof (evt.data) !== “randomNumber2“) { document.getElementById(“rpm2value”).value = evt.data;
}
}); ` ```

可以关闭。我换成了Arduinojson。无论如何,谢谢你,祝你一切顺利。
我的解决方案:

float m1rpm = 123;
float m2rpm = 12;

AsyncWebServer server(80);
AsyncWebSocket ws(“/ws”);

AsyncWebsocketClient * globalClient = NULL;

Void onWsEvent(AsyncWebSocket * server, AsyncWebsocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){

if(type == WS_EVT_CONNECT){
globalClient = client;
}
else if(type == WS_EVT_DISCONNECT){
globalClient = NULL;
}
}

Void SendRpm() {
StaticJsonDocument<200> json;
json[“rpmstatus”] = m1rpm;
json[“rpmstatus2”] = m2rpm;

char buffer[100];
serializeJson(json, buffer);

if(globalClient != NULL && globalClient->status() == WS_CONNECTED) {
globalClient->text(buffer);
}
}

Client side: js 

var ws = new Websocket(“ws://……./ws”);

ws.onopen = function() {
console.log(“Connected”);
};

ws.onclose = function() {
console.log(“Disconnected”);
};

ws.onopen = function() {
console.log(“Connected”);
};

ws.addEventListener(“message“, function (evt) { 
buffer = JSON.parse(evt.data);
document.getElementById(“rpm1”).value = buffer.rpmstatus;
document.getElementById(“rpm2”).value = buffer.rpmstatus2;
});

HTML:

<progress id=“rpm1” max=“500” value=“0”></progress>
<progress id=“rpm2” max=“500” value=“0”></progress> ```
float m1rpm=123;
浮动m2rpm=12;
异步web服务器(80);
异步WebSocket ws(“/ws”);
AsyncWebsocketClient*globalClient=NULL;
Void onWsEvent(AsyncWebSocket*服务器、AsyncWebsocketClient*客户端、AwsEventType类型、Void*参数、uint8_t*数据、大小长度){
如果(类型==WS\u EVT\u CONNECT){
globalClient=客户机;
}
else if(类型==WS_EVT_断开){
globalClient=NULL;
}
}
Void sendpm(){
静态json文档json;
json[“rpmstatus”]=m1rpm;
json[“rpmstatus2”]=m2rpm;
字符缓冲区[100];
序列化json(json,缓冲区);
if(globalClient!=NULL&&globalClient->status()==WS\u CONNECTED){
全局客户端->文本(缓冲区);
}
}
客户端:js
var ws=新的Websocket(“ws://……./ws”);
ws.onopen=函数(){
控制台日志(“已连接”);
};
ws.onclose=function(){
控制台日志(“断开”);
};
ws.onopen=函数(){
控制台日志(“已连接”);
};
ws.addEventListener(“消息”,函数(evt){
buffer=JSON.parse(evt.data);
document.getElementById(“rpm1”).value=buffer.rpmstatus;
document.getElementById(“rpm2”).value=buffer.rpmstatus2;
});
HTML:
```