|
DeterministicESPAsyncWebServer 1.2.0
Zero-allocation, bounded-execution async HTTP server for ESP32
|
Server-Sent Events connection pool implementation. More...
Go to the source code of this file.
Functions | |
| void | sse_init () |
| Initialise all SSE pool slots to inactive. | |
| SseConn * | sse_alloc (uint8_t slot_id, const char *path) |
| Allocate an SseConn and bind it to a TCP slot. | |
| SseConn * | sse_find (uint8_t slot_id) |
| Find the SseConn for a given TCP slot, or nullptr. | |
| void | sse_free (uint8_t slot_id) |
| Free the SseConn associated with a TCP slot. | |
| bool | sse_write (SseConn *sse, const char *data, const char *event, const char *id) |
| Write one SSE event record to a client. | |
Variables | |
| SseConn | sse_pool [MAX_SSE_CONNS] |
| Pool of SSE connection state, one per MAX_SSE_CONNS. | |
Server-Sent Events connection pool implementation.
Definition in file sse.cpp.
| void sse_init | ( | ) |
Initialise all SSE pool slots to inactive.
Called once from DetWebServer::begin().
Definition at line 16 of file sse.cpp.
References MAX_SSE_CONNS, SseConn::sse_id, and sse_pool.
Referenced by DetWebServer::begin(), and DetWebServer::stop().
| SseConn * sse_alloc | ( | uint8_t | slot_id, |
| const char * | path | ||
| ) |
Allocate an SseConn and bind it to a TCP slot.
| slot_id | TCP slot that just received the SSE subscription request. |
| path | URL path the client subscribed to (stored for broadcast). |
Definition at line 25 of file sse.cpp.
References SseConn::active, MAX_PATH_LEN, MAX_SSE_CONNS, SseConn::path, SseConn::slot_id, SseConn::sse_id, and sse_pool.
| SseConn * sse_find | ( | uint8_t | slot_id | ) |
Find the SseConn for a given TCP slot, or nullptr.
| slot_id | TCP connection slot index. |
Definition at line 43 of file sse.cpp.
References MAX_SSE_CONNS, and sse_pool.
Referenced by DetWebServer::handle().
| void sse_free | ( | uint8_t | slot_id | ) |
Free the SseConn associated with a TCP slot.
| slot_id | TCP connection slot index. |
Definition at line 53 of file sse.cpp.
References MAX_SSE_CONNS, SseConn::sse_id, and sse_pool.
| bool sse_write | ( | SseConn * | sse, |
| const char * | data, | ||
| const char * | event, | ||
| const char * | id | ||
| ) |
Write one SSE event record to a client.
Formats and sends event: ...\nid: ...\ndata: ...\n\n. Any optional field may be nullptr to omit it. data must not be nullptr.
The caller must call tcp_output() on the underlying PCB afterwards if immediate delivery is needed.
| sse | SSE connection. |
| data | Event data (required). |
| event | Event name (optional). |
| id | Event ID (optional). |
Definition at line 66 of file sse.cpp.
References CONN_ACTIVE, conn_pool, TcpConn::pcb, SseConn::slot_id, SSE_BUF_SIZE, and TcpConn::state.
| SseConn sse_pool[MAX_SSE_CONNS] |
Pool of SSE connection state, one per MAX_SSE_CONNS.
Definition at line 14 of file sse.cpp.
Referenced by sse_alloc(), sse_find(), sse_free(), and sse_init().