Mercurial
diff mrjunejune/main.c @ 125:f236c895604e
[MrJuneJune] Added web socket for chat to this.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Thu, 08 Jan 2026 08:46:49 -0800 |
| parents | dbf14f84d51c |
| children | 7eb79fd91c7e |
line wrap: on
line diff
--- a/mrjunejune/main.c Thu Jan 08 07:31:32 2026 -0800 +++ b/mrjunejune/main.c Thu Jan 08 08:46:49 2026 -0800 @@ -474,16 +474,40 @@ return resp; } +void Chat_Handler(Seobeo_WebSocket_Server_Connection *p_conn, Seobeo_WebSocket_Message *p_msg, void *p_user_data) +{ + (void)p_user_data; + + if (p_msg->opcode == SEOBEO_WS_OPCODE_TEXT) + { + char message[2048]; + snprintf(message, sizeof(message), "[%s]: %.*s", p_conn->client_id, (int)p_msg->length, (char*)p_msg->data); + + Seobeo_Log(SEOBEO_INFO, "[Chat] Broadcasting: %s\n", message); + Seobeo_WebSocket_Server_Broadcast_Text(message, p_conn); + } +} + +Seobeo_Request_Entry *GetTalk(Seobeo_Request_Entry *req, Dowa_Arena *arena) +{ + Seobeo_Request_Entry *resp = NULL; + char *final_body = Dowa_Arena_Allocate(arena, 50 * 1024); + Seobeo_ServerSideRender(final_body, "/talk/index.html", arena); + Dowa_HashMap_Push_Arena(resp, "body", final_body, arena); + return resp; +} CREATE_REDIRECT_HANDLER(HomePage, "/") CREATE_REDIRECT_HANDLER(Resume, "/resume") CREATE_REDIRECT_HANDLER(Tools, "/tools") CREATE_REDIRECT_HANDLER(MarkDownToHtml, "/tools/markdown_to_html") CREATE_REDIRECT_HANDLER(FileConverter, "/tools/file_converter") +CREATE_REDIRECT_HANDLER(Talk, "/talk") int main(void) { Seobeo_Router_Init(); + Seobeo_Router_Register("GET", "/", GetHomePage); Seobeo_Router_Register("GET", "/index.html", GetRedirectHomePage); @@ -508,5 +532,14 @@ Seobeo_Router_Register("GET", "/blog", RenderBlogList); Seobeo_Router_Register("GET", "/blog/:blog_id", RenderBlog); + // -- Talk --/ + Seobeo_Router_Register("GET", "/talk", GetTalk); + // Seobeo_Router_Register("GET", "/talk/index.html", GetRedirectTalk); + + printf("Registered Websockets\n"); + + Seobeo_WebSocket_Server_Init(); + Seobeo_WebSocket_Server_Register("/chat", Chat_Handler, NULL); + Seobeo_Web_Server_Start("mrjunejune/src", "6969", SEOBEO_MODE_EDGE, 3); }