61 lines
1.7 KiB
C++
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!
|
|
}
|