24#ifndef DETERMINISTICESPASYNCWEBSERVER_WS_CLIENT_H
25#define DETERMINISTICESPASYNCWEBSERVER_WS_CLIENT_H
31#if DETWS_ENABLE_WS_CLIENT
34enum class WsClientOpcode : uint8_t
54void ws_client_accept_for_key(
const char *key_b64,
char *out,
size_t out_cap);
61size_t ws_client_build_handshake(uint8_t *out,
size_t cap,
const char *host,
const char *path,
const char *key_b64,
62 const char *subprotocol);
69bool ws_client_check_response(
const uint8_t *buf,
size_t len,
const char *expected_accept);
76size_t ws_client_build_frame(uint8_t *out,
size_t cap, WsClientOpcode opcode,
const uint8_t *payload,
size_t len,
77 const uint8_t mask[4]);
86bool ws_client_parse_frame(
const uint8_t *buf,
size_t avail, uint8_t *opcode,
bool *fin,
size_t *payload_off,
87 size_t *payload_len,
size_t *consumed);
94typedef void (*WsClientMessageCb)(uint8_t opcode,
const uint8_t *payload,
size_t len);
97void ws_client_on_message(WsClientMessageCb cb);
103bool ws_client_connect(
const char *host, uint16_t port,
bool use_tls,
const char *path);
106bool ws_client_send_text(
const char *text);
109bool ws_client_send_binary(
const uint8_t *data,
size_t len);
116bool ws_client_loop();
119bool ws_client_connected();
122void ws_client_close();
User-facing configuration for DeterministicESPAsyncWebServer.