Csilk 0.2.1
A lightweight, high-performance C HTTP web framework
Loading...
Searching...
No Matches
advanced_server.c File Reference

Advanced server example with route groups, WebSocket, and auth middleware. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "csilk/csilk.h"
Include dependency graph for advanced_server.c:

Data Structures

struct  user_t
 Example user model struct. More...
 

Functions

void auth_required (csilk_ctx_t *c)
 Custom auth middleware — validates Authorization header.
 
void get_user_handler (csilk_ctx_t *c)
 Handler for GET /api/v1/users/:id — returns a mock user.
 
void post_data_handler (csilk_ctx_t *c)
 Handler for POST /api/v1/data — echoes received JSON with a 50ms delay.
 
void ws_on_message (csilk_ctx_t *c, const uint8_t *payload, size_t len, int opcode)
 WebSocket message callback — echoes received messages back to client.
 
void ws_handler (csilk_ctx_t *c)
 WebSocket upgrade handler — performs handshake and sets message callback.
 
void ping_handler (csilk_ctx_t *c)
 Simple ping handler — returns "pong".
 
void static_handler (csilk_ctx_t *c)
 Static file handler — serves files from the ./public directory.
 
int main ()
 

Detailed Description

Advanced server example with route groups, WebSocket, and auth middleware.


Data Structure Documentation

◆ user_t

struct user_t

Example user model struct.

Data Fields
int id

User ID number.

char name[100]

User display name.

Function Documentation

◆ auth_required()

void auth_required ( csilk_ctx_t *  c)

Custom auth middleware — validates Authorization header.

◆ get_user_handler()

void get_user_handler ( csilk_ctx_t *  c)

Handler for GET /api/v1/users/:id — returns a mock user.

◆ main()

int main ( void  )

◆ ping_handler()

void ping_handler ( csilk_ctx_t *  c)

Simple ping handler — returns "pong".

◆ post_data_handler()

void post_data_handler ( csilk_ctx_t *  c)

Handler for POST /api/v1/data — echoes received JSON with a 50ms delay.

◆ static_handler()

void static_handler ( csilk_ctx_t *  c)

Static file handler — serves files from the ./public directory.

◆ ws_handler()

void ws_handler ( csilk_ctx_t *  c)

WebSocket upgrade handler — performs handshake and sets message callback.

◆ ws_on_message()

void ws_on_message ( csilk_ctx_t *  c,
const uint8_t *  payload,
size_t  len,
int  opcode 
)

WebSocket message callback — echoes received messages back to client.