Basic websocket demo esp8266

Dependencies:   ESP8266Interface HTTPClient-SSL WebSocketClient mbed-rtos mbed-dev

Fork of ESP8266_HTTP_HelloWorld by ESP8266

Revision:
12:978788c2156c
Parent:
9:91fe783e1dd4
Child:
13:5f2bb0dc134b
--- a/main.cpp	Fri May 01 18:29:45 2015 +0000
+++ b/main.cpp	Wed Jun 03 18:47:14 2015 +0000
@@ -1,34 +1,44 @@
 #include "mbed.h"
 #include "ESP8266Interface.h"
 #include "TCPSocketConnection.h"
- 
-const char* ECHO_SERVER_ADDRESS = "192.168.2.4";
-const int ECHO_SERVER_PORT = 8080;
-ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password
+#include "TCPSocketServer.h"
+#include "Websocket.h"
+
+
+
+ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password,Baud
 RawSerial pc(USBTX, USBRX); // tx, rx
  
 int main() {
     pc.baud(115200);
-    wifi.init(); //Use DHCP
-    wifi.connect();
+    wifi.init(); //Reset
+    wifi.connect(); //Use DHCP
     pc.printf("IP Address is %s\n", wifi.getIPAddress());
     
-    TCPSocketConnection socket;
-    while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
-        pc.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
-        wait(1);
-    }
+    Websocket ws("ws://192.168.1.20:8888/ws");
     
-    char hello[] = "Hello World\n";
-    socket.send_all(hello, sizeof(hello) - 1);
-    
-    char buf[256];
-    int n = socket.receive(buf, 256);
-    buf[n] = '\0';
-    pc.printf("%s", buf);
-    
-    socket.close();
-    wifi.disconnect();
+    //Check for successful socket connection
+    if(!ws.connect())
+        ws.close();
+    else{
+        char str[100];
+        
+        for(int i=0; i<0x7fffffff; ++i) {
+            // string with a message
+            sprintf(str, "%d WebSocket Hello World over Ethernet", i);
+            ws.send(str);
+        
+            // clear the buffer and wait a sec...
+            memset(str, 0, 100);
+            wait(0.5f);
+        
+            // websocket server should echo whatever we sent it
+            if (ws.read(str)) {
+                pc.printf("rcv'd: %s\n", str);
+            }
+        }
+    }
+    ws.close();
     
     while(true) {}
 }