1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-07-29 21:01:13 +03:00

Update websocket example to use the current interface

This commit is contained in:
bel
2015-08-19 20:58:40 +02:00
parent 17f3949f24
commit 615970e9d1

View File

@ -32,13 +32,22 @@ const size_t websocket_goodbye_msg_len = 14 /* strlen(websocket_goodbye_msg) */
/*************************************************************************************/
/* WEBSOCKET SERVER */
/*************************************************************************************/
#if defined(MG_LEGACY_INTERFACE)
int websock_server_connect(const struct mg_connection * conn)
#else
int websocket_server_connect(const struct mg_connection * conn, void * _ignored)
#endif
{
printf("Server: Websocket connected\n");
return 0; /* return 0 to accept every connection */
}
#if defined(MG_LEGACY_INTERFACE)
void websocket_server_ready(struct mg_connection * conn)
#else
void websocket_server_ready(struct mg_connection * conn, void * _ignored)
#endif
{
printf("Server: Websocket ready\n");
@ -48,7 +57,12 @@ void websocket_server_ready(struct mg_connection * conn)
mg_unlock_connection(conn);
}
#if defined(MG_LEGACY_INTERFACE)
int websocket_server_data(struct mg_connection * conn, int bits, char *data, size_t data_len)
#else
int websocket_server_data(struct mg_connection * conn, int bits, char *data, size_t data_len, void *_ignored)
#endif
{
printf("Server: Got %u bytes from the client\n", data_len);
@ -67,13 +81,19 @@ int websocket_server_data(struct mg_connection * conn, int bits, char *data, siz
return 1; /* return 1 to keep the connetion open */
}
#if defined(MG_LEGACY_INTERFACE)
void websocket_server_connection_close(const struct mg_connection * conn)
#else
void websocket_server_connection_close(const struct mg_connection * conn, void *_ignored)
#endif
{
printf("Server: Close connection\n");
/* Can not send a websocket goodbye message here - the connection is already closed */
}
struct mg_context * start_websocket_server()
{
const char * options[] = { "document_root", DOCUMENT_ROOT,
@ -86,11 +106,26 @@ struct mg_context * start_websocket_server()
struct mg_context *ctx;
memset(&callbacks, 0, sizeof(callbacks));
#if defined(MG_LEGACY_INTERFACE)
/* Obsolete: */
callbacks.websocket_connect = websock_server_connect;
callbacks.websocket_ready = websocket_server_ready;
callbacks.websocket_data = websocket_server_data;
callbacks.connection_close = websocket_server_connection_close;
ctx = mg_start(&callbacks, 0, options);
#else
/* New interface: */
ctx = mg_start(&callbacks, 0, options);
mg_set_websocket_handler(ctx, "/websocket",
websocket_server_connect,
websocket_server_ready,
websocket_server_data,
websocket_server_connection_close,
NULL);
#endif
return ctx;
}