ESP8266 соединение через веб-сокет с определенным портом источника - PullRequest
0 голосов
/ 11 января 2019

Я разрабатываю соединение через веб-сокет, используя ESP8266. У меня есть сервер веб-сокетов (очень простой), разработанный в Nodejs 192.168.20.21:8080, а клиент веб-сокетов - ESP8266. Таким образом, я могу отправить сообщение с ESP8266 на сервер через веб-сокет.

Можно определить порт источника сообщения? Сколько подключений через веб-сокет может управлять ESP8266?

#include <ESP8266WiFi.h>
#include <WebSocketClient.h>

const char* ssid     = "test";
const char* password = "test";
char path[] = "/";
char host[] = "192.168.20.21";

WebSocketClient webSocketClient;

// Use WiFiClient class to create TCP connections
WiFiClient client;
WiFiClient client2;

void setup() {
  Serial.begin(115200);
  delay(10);

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  delay(5000);


  // Connect to the websocket server
  if (client.connect("192.168.20.21", 8080)) {
    Serial.println("Connected");
  } else {
    Serial.println("Connection failed.");
    while(1) {
      // Hang on failure
    }
  }

  // Handshake with the server
  webSocketClient.path = path;
  webSocketClient.host = host;
  if (webSocketClient.handshake(client)) {
    Serial.println("Handshake successful");
  } else {
    Serial.println("Handshake failed.");
    while(1) {
      // Hang on failure
    }  
  }

}


void loop() {
  String data;
  if (client.connected()) {

    // capture the value of analog 1, send it along

    data = String("Connessione 1");
  webSocketClient2.sendData(data);

  } else {
    Serial.println("Client disconnected.");
    while (1) {
  // Hang on disconnect.
    }
  }
  // wait to fully let the client disconnect
  delay(3000);

}

Моя идея - определить источник IP: PORT для ESP8266. Например, 192.168.20.30:84 (192.168.20.30 - IP-адрес ESP).

Большое спасибо

...