Skip to content

Instantly share code, notes, and snippets.

@daverix
Last active October 5, 2017 00:42
Show Gist options
  • Save daverix/9017961 to your computer and use it in GitHub Desktop.
Save daverix/9017961 to your computer and use it in GitHub Desktop.
websocket in c
typedef struct LinkedList {
void *data;
LinkedList *next;
} LinkedList;
int linked_list_add(LinkedList *list, void *data);
int linked_list_remove(LinkedList *list, void *data);
typedef struct {
int fd_socket;
thread_t *thread;
} WebSocketClient;
typedef struct {
int port;
int fd_server_socket;
int state;
LinkedList *clients;
int (*client_connected)(WebSocketClient *client);
int (*client_disconnected)(WebSocketClient *client);
int (*message_received)(WebSocketClient *client, char *message);
} WebSocketServer;
WebSocketServer* websocket_create(int port);
int websocket_server_start(WebSocketServer *server);
int websocket_server_stop(WebSocketServer *server);
int websocket_server_destroy(WebSocketServer *server);
int websocket_send(WebSocketServer *server, WebSocketClient *client, char *message);
int websocket_broadcast(WebSocketServer *data, char *message);
int websocket_broadcast(WebSocketServer *data, char *message, WebSocketClient *excludeSender);
WebSocketClient* websocket_client_create(int fd_socket, thread_t *thread);
int websocket_client_destroy(WebSocketClient *client);
int websocket_server_add_client(WebSocketServer *server, WebSocketClient *client);
int websocket_server_remove_client(WebSocketServer *server, WebSocketClient *client);
@Globik
Copy link

Globik commented Oct 5, 2017

What's this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment