Skip to content
80 changes: 80 additions & 0 deletions examples/WebSocketClientEthernet2/WebSocketClient.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* WebSocketClient.ino
*
* Created on: 27.05.2018
*
*/
#include <Ethernet2.h>
#include <WebSocketsClient.h>
#include <Streaming.h>

WebSocketsClient webSocket;

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF};
IPAddress ip(192, 168, 0, 110);
#define USE_SERIAL Serial

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


switch(type) {
case WStype_DISCONNECTED:
//USE_SERIAL.printf("[WSc] Disconnected!\n");
USE_SERIAL << "[WSc] Disconnected!" << endl;
break;
case WStype_CONNECTED:
{
//USE_SERIAL.printf("[WSc] Connected to url: %s\n", payload);
USE_SERIAL << "[WSc] Connected to url: " << (char*)payload << endl;
// send message to server when Connected
webSocket.sendTXT("Connected");
}
break;
case WStype_TEXT:
//USE_SERIAL.printf("[WSc] get text: %s\n", payload);
USE_SERIAL << "[WSc] get text: " << (char*)payload << endl;

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

// send data to server
// webSocket.sendBIN(payload, lenght);
break;
}

}

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

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 << "[SETUP] BOOT WAIT " << t << "..." << endl;
USE_SERIAL.flush();
delay(1000);
}

Ethernet.begin(mac,ip);
USE_SERIAL << Ethernet.localIP() << endl;



//webSocket.begin("wss://echo.websocket.org", 443);
webSocket.begin("ws://echo.websocket.org", 80);
webSocket.onEvent(webSocketEvent);

}

void loop() {
webSocket.loop();
}
120 changes: 47 additions & 73 deletions examples/WebSocketServer/WebSocketServer.ino
Original file line number Diff line number Diff line change
@@ -1,86 +1,60 @@
/*
* WebSocketServer.ino
*
* Created on: 22.05.2015
*
*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <Ethernet2.h>
#include <WebSocketsServer.h>
#include <Hash.h>
#include <Streaming.h>

ESP8266WiFiMulti WiFiMulti;
#define USE_SERIAL Serial
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF};
IPAddress ip(192, 168, 0, 110);

WebSocketsServer webSocket = WebSocketsServer(81);

#define USE_SERIAL Serial1
WebSocketsServer webSocket = WebSocketsServer(8081);

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

switch(type) {
case WStype_DISCONNECTED:
USE_SERIAL.printf("[%u] Disconnected!\n", num);
break;
case WStype_CONNECTED:
{
IPAddress ip = webSocket.remoteIP(num);
USE_SERIAL.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);

// send message to client
webSocket.sendTXT(num, "Connected");
}
break;
case WStype_TEXT:
USE_SERIAL.printf("[%u] get Text: %s\n", num, payload);

// send message to client
// webSocket.sendTXT(num, "message here");

// send data to all connected clients
// webSocket.broadcastTXT("message here");
break;
case WStype_BIN:
USE_SERIAL.printf("[%u] get binary lenght: %u\n", num, lenght);
hexdump(payload, lenght);

// send message to client
// webSocket.sendBIN(num, payload, lenght);
break;
}

switch (type) {
case WStype_DISCONNECTED:
USE_SERIAL << num << " Disconnected!" << endl;
break;
case WStype_CONNECTED:
{
//IPAddress ip = webSocket.remoteIP(num);
USE_SERIAL << num << " Connected url: " << (char*)payload << endl;
// send message to client
webSocket.sendTXT(num, "Connected");
}
break;
case WStype_TEXT:
USE_SERIAL << num << " get Text: " << (char*)payload << endl;

// send message to client
webSocket.sendTXT(num, "message here");

// send data to all connected clients
webSocket.broadcastTXT("broadcast message here");
break;
case WStype_BIN:
USE_SERIAL << num << " get binary lenght: ";

// send message to client
webSocket.sendBIN(num, payload, lenght);
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);
}

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

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

webSocket.begin();
webSocket.onEvent(webSocketEvent);
USE_SERIAL.begin(115200);
Ethernet.begin(mac, ip);
USE_SERIAL.println("\n\n");
USE_SERIAL.println(Ethernet.localIP());

for (uint8_t t = 4; t > 0; t--) {
USE_SERIAL.flush();
delay(1000);
}

webSocket.begin();
webSocket.onEvent(webSocketEvent);
}

void loop() {
webSocket.loop();
webSocket.loop();
}

82 changes: 82 additions & 0 deletions examples/WebSocketServer/WebSocketServer_ethernetShield2.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#include <Ethernet2.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp2.h>
/////////#include <HexDump.h> //downloaded from https://github.com/Yveaux/Arduino_HexDump

#include <WebSocketsServer.h>
//#include <Hash.h>

#include <Streaming.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF};
IPAddress ip(192, 168, 0, 110);

WebSocketsServer webSocket = WebSocketsServer(8081);

#define USE_SERIAL Serial

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

switch(type) {
case WStype_DISCONNECTED:
//USE_SERIAL.printf("[%u] Disconnected!\n", num);
USE_SERIAL << num << " Disconnected!" << endl;
break;
case WStype_CONNECTED:
{
//IPAddress ip = webSocket.remoteIP(num);
//USE_SERIAL.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);
USE_SERIAL << num << " Connected url: " << int(payload) << endl;
// send message to client
webSocket.sendTXT(num, "Connected");
}
break;
case WStype_TEXT:
//USE_SERIAL.printf("[%u] get Text: %s\n", num, payload);
USE_SERIAL << num << " get Text: " << int(payload) << endl;

// send message to client
webSocket.sendTXT(num, "message here");

// send data to all connected clients
webSocket.broadcastTXT("message here");
break;
case WStype_BIN:
//USE_SERIAL.printf("[%u] get binary lenght: %u\n", num, lenght);
USE_SERIAL << num <<" get binary lenght: " << lenght << endl;
///////////hexdump(payload, lenght);

// send message to client
webSocket.sendBIN(num, payload, lenght);
break;
}

}

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

Ethernet.begin(mac, ip);

// 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);
}


webSocket.begin();
webSocket.onEvent(webSocketEvent);
}

void loop() {
webSocket.loop();
}
Loading