/* Start the WebSocket server and initialize default options. */ static void start_server (void *ptr_data) { GWSWriter *writer = (GWSWriter *) ptr_data; if ((writer->server = ws_init ("0.0.0.0", "7890")) == NULL) return; ws_set_config_strict (1); if (conf.addr) ws_set_config_host (conf.addr); if (conf.fifo_in) ws_set_config_pipein (conf.fifo_in); if (conf.fifo_out) ws_set_config_pipeout (conf.fifo_out); if (conf.origin) ws_set_config_origin (conf.origin); if (conf.port) ws_set_config_port (conf.port); if (conf.sslcert) ws_set_config_sslcert (conf.sslcert); if (conf.sslkey) ws_set_config_sslkey (conf.sslkey); writer->server->onopen = onopen; set_self_pipe (writer->server->self_pipe); /* select(2) will block in here */ ws_start (writer->server); fprintf (stderr, "Stopping WebSocket server...\n"); ws_stop (writer->server); }
/* Start the WebSocket server and initialize default options. */ static void start_server (void *ptr_data) { GWSWriter *writer = (GWSWriter *) ptr_data; writer->server->onopen = onopen; set_self_pipe (writer->server->self_pipe); /* select(2) will block in here */ ws_start (writer->server); fprintf (stderr, "Stopping WebSocket server...\n"); ws_stop (writer->server); }
int main (int argc, char **argv) { if ((server = ws_init ("0.0.0.0", "7890")) == NULL) { perror ("Error during ws_init.\n"); exit (EXIT_FAILURE); } /* callbacks */ server->onclose = onclose; server->onmessage = onmessage; server->onopen = onopen; set_self_pipe (); if (setup_signals () != 0) exit (EXIT_FAILURE); if (read_option_args (argc, argv) == 0) ws_start (server); ws_stop (server); return EXIT_SUCCESS; }