From 02841e3c67c92006f9fe08efcda0d15f3d7283c5 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Thu, 2 Oct 2025 12:42:29 +0200 Subject: checkpoint --- ws/ws.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 ws/ws.c (limited to 'ws/ws.c') diff --git a/ws/ws.c b/ws/ws.c new file mode 100644 index 0000000..308a6ca --- /dev/null +++ b/ws/ws.c @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2016-2023 Davidson Francis + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define PORT 1234 + +void onopen(ws_cli_conn_t client) +{ + char *cli, *port; + cli = ws_getaddress(client); + port = ws_getport(client); +#ifndef DISABLE_VERBOSE + printf("Connection opened, addr: %s, port: %s\n", cli, port); +#endif +} + +void onclose(ws_cli_conn_t client) +{ + char *cli; + cli = ws_getaddress(client); +#ifndef DISABLE_VERBOSE + printf("Connection closed, addr: %s\n", cli); +#endif +} + +void onmessage(ws_cli_conn_t client, + const unsigned char *msg, uint64_t size, int type) +{ + char *cli; + cli = ws_getaddress(client); +#ifndef DISABLE_VERBOSE + printf("I receive a message: %s (size: %" PRId64 ", type: %d), from: %s\n", + msg, size, type, cli); +#endif + + char Message[] = "reload"; + unsigned int MessageSize = (sizeof(Message) - 1); + ws_sendframe_bcast(PORT, Message, MessageSize, WS_FR_OP_TXT); +} + +int main(void) +{ + ws_socket(&(struct ws_server){ + .host = "0.0.0.0", + .port = PORT, + .thread_loop = 0, + .timeout_ms = 1000, + .evs.onopen = &onopen, + .evs.onclose = &onclose, + .evs.onmessage = &onmessage + }); + + return (0); +} -- cgit v1.2.3-70-g09d2