10#ifndef KEEL_WEBSOCKET_CLIENT_H
11#define KEEL_WEBSOCKET_CLIENT_H
21#define KL_WS_CLIENT_DEFAULT_TIMEOUT_MS 30000
23#define KL_WS_CLIENT_RECV_BUF_SIZE 8192
25#define KL_WS_CLIENT_DEFAULT_MAX_FRAME (16 * 1024 * 1024)
27#define KL_WS_CLIENT_KEY_B64_SIZE 25
29#define KL_WS_CLIENT_UPGRADE_BUF_INIT 512
46 int is_binary,
void *user_data);
48 const char *reason,
size_t reason_len,
void *user_data);
85 const char *reason,
size_t reason_len);
Bring-your-own allocator vtable.
Definition allocator.h:12
Composable event loop context.
Definition event_ctx.h:42
TLS configuration for KlConfig.
Definition tls.h:108
Definition websocket_client.h:43
Definition websocket_client.h:35
int timeout_ms
Definition websocket_client.h:36
size_t max_frame_size
Definition websocket_client.h:37
const char * protocol
Definition websocket_client.h:39
KlTlsConfig * tls
Definition websocket_client.h:38
int ping_interval_ms
Definition websocket_client.h:40
Shared WebSocket protocol constants and frame parser.
int kl_ws_client_send_ping(KlWsClientConn *ws, const char *data, size_t len)
Send a ping frame.
struct KlWsClientConn KlWsClientConn
Definition websocket_client.h:33
int kl_ws_client_send_binary(KlWsClientConn *ws, const char *data, size_t len)
Send a binary frame.
void kl_ws_client_free(KlWsClientConn *ws)
Free all WebSocket client resources.
void kl_ws_client_close(KlWsClientConn *ws, uint16_t code, const char *reason, size_t reason_len)
Initiate close handshake.
int kl_ws_client_send_text(KlWsClientConn *ws, const char *data, size_t len)
Send a text frame.
KlWsClientConn * kl_ws_client_connect(KlEventCtx *ev, KlAllocator *alloc, const KlWsClientConfig *cfg, const char *url, const KlWsClientCallbacks *cbs, void *user_data)
Connect to a WebSocket server.