Arduino (ESP8266) на laravel проблема подписки канала веб-сокета - PullRequest
0 голосов
/ 26 марта 2020

Я работаю над проектом IoT, который должен подключиться к серверу сокетов на основе laravel. на стороне laravel все работает так, как должно быть, но проблема заключается в стороне arduino, которая является модулем ESP8266, программируемым в Arduino IDE. я хочу использовать библиотеку Links2004 / arduinoWebSockets для подключения к серверу. это соединяется, но я не могу определить, на каком канале это должно быть. есть ли способ в этой библиотеке сказать, что устройство канала должно быть включено? Я благодарен за любую помощь:)

Тестовый код Arduino:

/*
Esp8266 Websockets Client

This sketch:
    1. Connects to a WiFi network
    2. Connects to a Websockets server
    3. Sends the websockets server a message ("Hello Server")
    4. Prints all incoming messages while the connection is open

Hardware:
    For this sketch you only need an ESP8266 board.

Created 15/02/2019
By Gil Maimon
https://github.com/gilmaimon/ArduinoWebsockets

*/

#include <ArduinoWebsockets.h>
#include <ESP8266WiFi.h>

const char* ssid = "****"; //Enter SSID
const char* password = "******"; //Enter Password
const char* websockets_server_host = "xxx.xxx.xxx.xxx"; //Enter server adress -- serverip_or_name
const uint16_t websockets_server_port = 6001; // Enter server port
bool connected;
 using namespace websockets;

 WebsocketsClient client;
void setup() {
Serial.begin(115200);
// Connect to wifi
WiFi.begin(ssid, password);

// Wait some time to connect to wifi
for(int i = 0; i < 10 && WiFi.status() != WL_CONNECTED; i++) {
    Serial.print(".");
    delay(1000);
}

// Check if connected to wifi
if(WiFi.status() != WL_CONNECTED) {
    Serial.println("No Wifi!");
    return;
}

Serial.println("Connected to Wifi, Connecting to server.");
// try to connect to Websockets server
 connected = client.connect(websockets_server_host, websockets_server_port, "/app/ab_key");
if(connected) {
    Serial.println("Connecetd!");
    client.send("Hello Server");
} else {
    Serial.println("Not Connected!");
}

// run callback when messages are received
client.onMessage([&](WebsocketsMessage message) {
    Serial.print("Got Message: ");
    Serial.println(message.data());
 });
}
void loop() {
 if(connected) {
    Serial.println("Connecetd!");
    client.send("Hello Server");
} else {
  connected = client.connect(websockets_server_host, websockets_server_port, "/app/ab_key");
    Serial.println("try!");
}

// let the websockets client check for incoming messages
if(client.available()) {
    client.poll();
}
delay(500);
} 

вид терминала laravel websocket: laravel websocket

...