using json = nlohmann::json;\r
\r
#include <string>\r
+#include <functional>\r
\r
namespace ws\r
{\r
\r
bool done = false;\r
\r
+ std::function<void()> onConnect;\r
+\r
static void cb(struct mg_connection *c, int ev, void *ev_data, void *fn_data) {\r
if (ev == MG_EV_WS_OPEN) {\r
+ puts("Open");\r
} else if (ev == MG_EV_WS_MSG) {\r
struct mg_ws_message *wm = (struct mg_ws_message *) ev_data;\r
+ printf("Msg: %.*s\n", (int)wm->data.len, wm->data.ptr);\r
std::string jsonStr(wm->data.ptr, wm->data.len);\r
auto msg = json::parse(jsonStr);\r
int op = msg["op"].get<int>();\r
}\r
else if (op == 2)\r
{\r
- MessageBoxA(NULL, "hura", "connected", MB_OK);\r
+ puts("Connected");\r
+ if (onConnect)\r
+ onConnect();\r
}\r
}\r
\r
if (ev == MG_EV_ERROR) {\r
- MessageBoxA(NULL, "", "Error", MB_OK);\r
+ printf("Error: %s\n", (char*)ev_data);\r
done = true;\r
}\r
if (ev == MG_EV_CLOSE) {\r
- MessageBoxA(NULL, "", "Close", MB_OK);\r
+ puts("Close");\r
done = true;\r
}\r
}\r
{ "d",\r
{\r
{ "requestType", requestType },\r
- { "requestId", std::to_string(NULL).c_str() }\r
+ { "requestId", std::to_string(time(nullptr)).c_str() }\r
} } };\r
auto requestStr = request.dump();\r
mg_ws_send(c, requestStr.c_str(), requestStr.size(), WEBSOCKET_OP_TEXT);\r