KEEL 1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
Data Structures | Typedefs | Functions
websocket_server.h File Reference

Server-side WebSocket API. More...

#include <keel/websocket.h>
#include <keel/drain.h>
Include dependency graph for websocket_server.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  KlWsServerCallbacks
 
struct  KlWsServerConfig
 
struct  KlWsServerConn
 

Typedefs

typedef struct KlWsServerConn KlWsServerConn
 
typedef struct KlConn KlConn
 
typedef struct KlWsServerConfig KlWsServerConfig
 

Functions

void kl_ws_server_config_init (KlWsServerConfig *config)
 Initialize a KlWsServerConfig with safe defaults.
 
int kl_ws_server_send_text (KlWsServerConn *ws, const char *data, size_t len)
 Send a text frame.
 
int kl_ws_server_send_binary (KlWsServerConn *ws, const char *data, size_t len)
 Send a binary frame.
 
int kl_ws_server_send_ping (KlWsServerConn *ws, const char *data, size_t len)
 Send a ping frame.
 
int kl_ws_server_close (KlWsServerConn *ws, uint16_t code, const char *reason, size_t reason_len)
 Initiate close handshake.
 
int kl_ws_server_enable_drain (KlWsServerConn *ws, size_t max_size)
 Enable drain-based backpressure for WebSocket writes.
 
int kl_ws_server_upgrade (KlConn *c, const char *leftover, size_t leftover_len)
 
int kl_ws_server_on_readable (KlConn *c)
 
int kl_ws_server_on_writable (KlConn *c)
 
int kl_ws_server_drain_pending (const KlConn *c)
 
void kl_ws_server_cleanup (KlConn *c)
 
void kl_ws_server_drain_close (KlConn *c)
 
int kl_ws_server_check_close_timeout (const KlConn *c, uint64_t now)
 
int kl_ws_server_auto_ping (KlConn *c, uint64_t now)
 
int kl_ws_server_on_readable_data (KlConn *c, uint8_t *data, size_t len)
 

Detailed Description

Server-side WebSocket API.

Server-side WebSocket types and functions. Shared protocol constants (frame parser, opcodes, status codes) live in websocket.h.

Typedef Documentation

◆ KlWsServerConn

◆ KlConn

typedef struct KlConn KlConn

◆ KlWsServerConfig

Function Documentation

◆ kl_ws_server_config_init()

void kl_ws_server_config_init ( KlWsServerConfig config)

Initialize a KlWsServerConfig with safe defaults.

◆ kl_ws_server_send_text()

int kl_ws_server_send_text ( KlWsServerConn ws,
const char *  data,
size_t  len 
)

Send a text frame.

Returns
0 on success, -1 on error.

◆ kl_ws_server_send_binary()

int kl_ws_server_send_binary ( KlWsServerConn ws,
const char *  data,
size_t  len 
)

Send a binary frame.

Returns
0 on success, -1 on error.

◆ kl_ws_server_send_ping()

int kl_ws_server_send_ping ( KlWsServerConn ws,
const char *  data,
size_t  len 
)

Send a ping frame.

Returns
0 on success, -1 on error.

◆ kl_ws_server_close()

int kl_ws_server_close ( KlWsServerConn ws,
uint16_t  code,
const char *  reason,
size_t  reason_len 
)

Initiate close handshake.

Returns
0 on success, -1 on error.

◆ kl_ws_server_enable_drain()

int kl_ws_server_enable_drain ( KlWsServerConn ws,
size_t  max_size 
)

Enable drain-based backpressure for WebSocket writes.

◆ kl_ws_server_upgrade()

int kl_ws_server_upgrade ( KlConn c,
const char *  leftover,
size_t  leftover_len 
)

◆ kl_ws_server_on_readable()

int kl_ws_server_on_readable ( KlConn c)

◆ kl_ws_server_on_writable()

int kl_ws_server_on_writable ( KlConn c)

◆ kl_ws_server_drain_pending()

int kl_ws_server_drain_pending ( const KlConn c)

◆ kl_ws_server_cleanup()

void kl_ws_server_cleanup ( KlConn c)

◆ kl_ws_server_drain_close()

void kl_ws_server_drain_close ( KlConn c)

◆ kl_ws_server_check_close_timeout()

int kl_ws_server_check_close_timeout ( const KlConn c,
uint64_t  now 
)

◆ kl_ws_server_auto_ping()

int kl_ws_server_auto_ping ( KlConn c,
uint64_t  now 
)

◆ kl_ws_server_on_readable_data()

int kl_ws_server_on_readable_data ( KlConn c,
uint8_t *  data,
size_t  len 
)