9#ifndef KEEL_WEBSOCKET_SERVER_H
10#define KEEL_WEBSOCKET_SERVER_H
25 int is_binary,
void *user_data);
27 size_t reason_len,
void *user_data);
Bring-your-own allocator vtable.
Definition allocator.h:12
Definition connection.h:34
KlWsServerConn * ws
Definition connection.h:63
Backpressure write buffer.
Definition drain.h:33
Definition websocket.h:48
Definition websocket_server.h:22
Definition websocket_server.h:34
int ping_interval_ms
Definition websocket_server.h:40
KlWsServerCallbacks callbacks
Definition websocket_server.h:35
size_t max_message_size
Definition websocket_server.h:37
void * user_data
Definition websocket_server.h:36
int close_timeout_ms
Definition websocket_server.h:39
size_t max_frame_size
Definition websocket_server.h:38
Definition websocket_server.h:46
size_t msg_cap
Definition websocket_server.h:51
KlAllocator * alloc
Definition websocket_server.h:60
int drain_enabled
Definition websocket_server.h:62
KlWsFrameParser frame
Definition websocket_server.h:48
int msg_opcode
Definition websocket_server.h:52
uint32_t utf8_state
Definition websocket_server.h:53
KlWsServerConfig * config
Definition websocket_server.h:47
int close_received
Definition websocket_server.h:55
int close_sent
Definition websocket_server.h:54
KlConn * conn
Definition websocket_server.h:59
size_t msg_len
Definition websocket_server.h:50
KlDrain drain
Definition websocket_server.h:61
char * msg_buf
Definition websocket_server.h:49
uint64_t next_ping_ms
Definition websocket_server.h:58
uint64_t close_deadline_ms
Definition websocket_server.h:57
uint16_t close_code
Definition websocket_server.h:56
Shared WebSocket protocol constants and frame parser.
int kl_ws_server_auto_ping(KlConn *c, uint64_t now)
int kl_ws_server_drain_pending(const KlConn *c)
int kl_ws_server_check_close_timeout(const KlConn *c, uint64_t now)
void kl_ws_server_cleanup(KlConn *c)
int kl_ws_server_on_writable(KlConn *c)
int kl_ws_server_send_ping(KlWsServerConn *ws, const char *data, size_t len)
Send a ping frame.
int kl_ws_server_on_readable_data(KlConn *c, uint8_t *data, size_t len)
int kl_ws_server_upgrade(KlConn *c, const char *leftover, size_t leftover_len)
int kl_ws_server_close(KlWsServerConn *ws, uint16_t code, const char *reason, size_t reason_len)
Initiate close handshake.
void kl_ws_server_drain_close(KlConn *c)
int kl_ws_server_enable_drain(KlWsServerConn *ws, size_t max_size)
Enable drain-based backpressure for WebSocket writes.
int kl_ws_server_send_binary(KlWsServerConn *ws, const char *data, size_t len)
Send a binary frame.
int kl_ws_server_on_readable(KlConn *c)
int kl_ws_server_send_text(KlWsServerConn *ws, const char *data, size_t len)
Send a text frame.
void kl_ws_server_config_init(KlWsServerConfig *config)
Initialize a KlWsServerConfig with safe defaults.