Files
uWebSockets/main.cpp
T

61 lines
1.7 KiB
C++

// uWS.h
#include "Hub.h"
char largeBuf[] = "HTTP/1.1 200 OK\r\nContent-Length: 512\r\n\r\n";
int largeHttpBufSize = sizeof(largeBuf) + 512 - 1;
char *largeHttpBuf;
int main() {
largeHttpBuf = (char *) malloc(largeHttpBufSize);
memcpy(largeHttpBuf, largeBuf, sizeof(largeBuf) - 1);
std::cout << "HttpSocket size: " << sizeof(HttpSocket) << std::endl;
// either use this, or use onHttpRoute but not both
uWS::defaultHub.onHttpRequest([](HttpSocket *s, HttpRequest *req) {
// we do not care for routers just yet!
if (req->getUrl() == "/") {
// just write back for now!
us_socket *us = (us_socket *) s;
us_socket_write(us, largeHttpBuf, largeHttpBufSize, 0);
} else {
std::cout << "Got HTTP request at URL: " << req->getUrl() << std::endl;
}
// get the URL here!
// an http socket can BOTH send buffered data AND have one stream in and one stream out!
// writeStatus(234314234)
// writeHeader(key, value)
// streamOut(asdasdasdsad)
// if some asshole posted data, stream it in
/*s->streamIn([]() {
});*/
//std::cout << "Got data: " << std::string(data, length) << std::endl;
// s->writeStatus();
// s->writeHeader();
// if url == / then stream index.htm
// stream out the response
/*s->stream(largeHttpBufSize, [](int offset) {
return std::make_pair(largeHttpBuf + offset, largeHttpBufSize - offset);
});*/
}).listen("localhost", 3000, 0).run();
// todo: important swapping to SSL should be .secureListen(same interfaces) and work out of the box!
}