From d64d507eaae9733dc20299fa4c100b87c431010e Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 19 Apr 2015 10:54:46 +0200 Subject: [PATCH] Handler for websocket connection (Step 3/?) Add an interface to register handler for websocket connections. See enhancement #30 and question #101 --- examples/embedded_c/embedded_c.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/examples/embedded_c/embedded_c.c b/examples/embedded_c/embedded_c.c index 6fcd9618..8d5c313b 100644 --- a/examples/embedded_c/embedded_c.c +++ b/examples/embedded_c/embedded_c.c @@ -121,7 +121,8 @@ int WebSocketStartHandler(struct mg_connection *conn, void *cbdata) #ifdef USE_WEBSOCKET -static struct mg_connection * ws_client; +#define MAX_WS_CLIENTS 1024 +static struct mg_connection * ws_clients[MAX_WS_CLIENTS]; static unsigned long cnt; int WebSocketConnectHandler(const struct mg_connection * conn, void *cbdata) @@ -134,13 +135,19 @@ int WebSocketConnectHandler(const struct mg_connection * conn, void *cbdata) void WebSocketReadyHandler(const struct mg_connection * conn, void *cbdata) { struct mg_context *ctx = mg_get_context((struct mg_connection *) /* TODO: check const_casts */ conn); + int i; const char * text = "Hello from the websocket ready handler"; /* TODO: check "const struct mg_connection *" vs "struct mg_connection *" everywhere */ mg_websocket_write((struct mg_connection *)conn, WEBSOCKET_OPCODE_TEXT, text, strlen(text)); fprintf(stdout, "Client added to the set of webserver connections\r\n\r\n"); mg_lock_context(ctx); - ws_client = conn; + for (i=0; i