arduinoWebSockets icon indicating copy to clipboard operation
arduinoWebSockets copied to clipboard

shows me disconnecting

Open feronarockiam opened this issue 1 year ago • 2 comments

this is my arduino code to connect using websockets

/*

  • WebSocketClientSocketIO.ino
  • Created on: 06.06.2016

*/

#include <Arduino.h>

#include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h>

#include <ArduinoJson.h>

#include <WebSocketsClient.h> #include <SocketIOclient.h>

#include <Hash.h>

ESP8266WiFiMulti WiFiMulti; SocketIOclient socketIO;

#define USE_SERIAL Serial1

void socketIOEvent(socketIOmessageType_t type, uint8_t * payload, size_t length) { switch(type) { case sIOtype_DISCONNECT: USE_SERIAL.printf("[IOc] Disconnected!\n"); break; case sIOtype_CONNECT: USE_SERIAL.printf("[IOc] Connected to url: %s\n", payload);

        // join default namespace (no auto join in Socket.IO V3)
        socketIO.send(sIOtype_CONNECT, "/");
        break;
    case sIOtype_EVENT:
        USE_SERIAL.printf("[IOc] get event: %s\n", payload);
        break;
    case sIOtype_ACK:
        USE_SERIAL.printf("[IOc] get ack: %u\n", length);
        hexdump(payload, length);
        break;
    case sIOtype_ERROR:
        USE_SERIAL.printf("[IOc] get error: %u\n", length);
        hexdump(payload, length);
        break;
    case sIOtype_BINARY_EVENT:
        USE_SERIAL.printf("[IOc] get binary: %u\n", length);
        hexdump(payload, length);
        break;
    case sIOtype_BINARY_ACK:
        USE_SERIAL.printf("[IOc] get binary ack: %u\n", length);
        hexdump(payload, length);
        break;
}

}

void setup() { // USE_SERIAL.begin(921600); USE_SERIAL.begin(115200);

//Serial.setDebugOutput(true);
USE_SERIAL.setDebugOutput(true);

USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();

  for(uint8_t t = 4; t > 0; t--) {
      USE_SERIAL.printf("[SETUP] BOOT WAIT %d...\n", t);
      USE_SERIAL.flush();
      delay(1000);
  }

// disable AP
if(WiFi.getMode() & WIFI_AP) {
    WiFi.softAPdisconnect(true);
}

WiFiMulti.addAP("redmiii", "12345678");

//WiFi.disconnect();
while(WiFiMulti.run() != WL_CONNECTED) {
    delay(100);
}

String ip = WiFi.localIP().toString();
USE_SERIAL.printf("[SETUP] WiFi Connected %s\n", ip.c_str());

// server address, port and URL
socketIO.begin("127.0.0.1", 3000, "/socket.io/?EIO=4");

// event handler
socketIO.onEvent(socketIOEvent);

}

unsigned long messageTimestamp = 0; void loop() { socketIO.loop();

uint64_t now = millis();

if(now - messageTimestamp > 2000) {
    messageTimestamp = now;

    // creat JSON message for Socket.IO (event)
    DynamicJsonDocument doc(1024);
    JsonArray array = doc.to<JsonArray>();

    // add evnet name
    // Hint: socket.on('event_name', ....
    array.add("event_name");

    // add payload (parameters) for the event
    JsonObject param1 = array.createNestedObject();
    param1["now"] = (uint32_t) now;

    // JSON to String (serializion)
    String output;
    serializeJson(doc, output);

    // Send event
    socketIO.sendEVENT(output);

    // Print JSON for debugging
    USE_SERIAL.println(output);
}

}

i always getting disconnected in my console where do i make mistake.

i gave my local host ipaddress since i run in my local computer and port is given since i run in 3000 port, am i making mistake in the websocket.begin()

feronarockiam avatar Apr 04 '23 06:04 feronarockiam

socketIO.begin("127.0.0.1", 3000, "/socket.io/?EIO=4");

I guess server address should not be 127.0.0.1

mostafa-nematpour avatar Apr 19 '23 21:04 mostafa-nematpour

did yoy get any solution I am facing the same problem

mos29 avatar Jun 13 '23 06:06 mos29