Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ESP Websockets client
is there an example for the ESP8266 to work as a VIRTUINO client (for data exchange between ESPs without the participation of the application)?
you can use a client example from the "WebSockets" library.

The app sends the data as a json object like {"tag":"value"}

I have modified an example, I can compile it but I don't have time to test it:
#include <Arduino.h>

#include <WiFi.h>
#include <WiFiMulti.h>

#include <WebSocketsClient.h>

WiFiMulti WiFiMulti;
WebSocketsClient webSocket;

#define USE_SERIAL Serial1

void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) {

    switch(type) {
        case WStype_DISCONNECTED:
            USE_SERIAL.printf("[WSc] Disconnected!\n");
        case WStype_CONNECTED: {
            USE_SERIAL.printf("[WSc] Connected to url: %s\n", payload);

            // send message to server when Connected
        case WStype_TEXT:
            USE_SERIAL.printf("[WSc] get text: %s\n", payload);

            // send message to server
            // webSocket.sendTXT("message here");
        case WStype_BIN:
            USE_SERIAL.printf("[WSc] get binary length: %u\n", length);
            //hexdump(payload, length);

            // send data to server
            // webSocket.sendBIN(payload, length);
        case WStype_PING:
            // pong will be send automatically
            USE_SERIAL.printf("[WSc] get ping\n");
        case WStype_PONG:
            // answer to a ping we send
            USE_SERIAL.printf("[WSc] get pong\n");


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



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

    WiFiMulti.addAP("SSID", "passpasspass");

    while( != WL_CONNECTED) {

    // server address, port and URL
    webSocket.begin("", 81, "/");

    // event handler

    // use HTTP Basic Authorization this is optional remove if not needed
    webSocket.setAuthorization("user", "Password");

    // try ever 5000 again if connection has failed
  // start heartbeat (optional)
  // ping server every 15000 ms
  // expect pong from server within 3000 ms
  // consider connection disconnected if pong is not received 2 times
  webSocket.enableHeartbeat(15000, 3000, 2);


void loop() {

  //if (something happened) sendValue("myTag","Hello Virtuino");


bool sendValue(const char* tag, String value){
  String json = "{\"";
  Serial.println("Send: "+json);

I think you have to replace the serial1 with the default serial if you want to see something in the terminal
thank you i will try
Hi. How many WebSosckets devices can the app connect to? Thanks!
Hi, there is no limit. Just try it

Forum Jump:

Users browsing this thread: 1 Guest(s)