Mercurial
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 124:dbf14f84d51c | 125:f236c895604e |
|---|---|
| 472 Seobeo_ServerSideRender(final_body, html_path, arena); | 472 Seobeo_ServerSideRender(final_body, html_path, arena); |
| 473 Dowa_HashMap_Push_Arena(resp, "body", final_body, arena); | 473 Dowa_HashMap_Push_Arena(resp, "body", final_body, arena); |
| 474 return resp; | 474 return resp; |
| 475 } | 475 } |
| 476 | 476 |
| 477 void Chat_Handler(Seobeo_WebSocket_Server_Connection *p_conn, Seobeo_WebSocket_Message *p_msg, void *p_user_data) | |
| 478 { | |
| 479 (void)p_user_data; | |
| 480 | |
| 481 if (p_msg->opcode == SEOBEO_WS_OPCODE_TEXT) | |
| 482 { | |
| 483 char message[2048]; | |
| 484 snprintf(message, sizeof(message), "[%s]: %.*s", p_conn->client_id, (int)p_msg->length, (char*)p_msg->data); | |
| 485 | |
| 486 Seobeo_Log(SEOBEO_INFO, "[Chat] Broadcasting: %s\n", message); | |
| 487 Seobeo_WebSocket_Server_Broadcast_Text(message, p_conn); | |
| 488 } | |
| 489 } | |
| 490 | |
| 491 Seobeo_Request_Entry *GetTalk(Seobeo_Request_Entry *req, Dowa_Arena *arena) | |
| 492 { | |
| 493 Seobeo_Request_Entry *resp = NULL; | |
| 494 char *final_body = Dowa_Arena_Allocate(arena, 50 * 1024); | |
| 495 Seobeo_ServerSideRender(final_body, "/talk/index.html", arena); | |
| 496 Dowa_HashMap_Push_Arena(resp, "body", final_body, arena); | |
| 497 return resp; | |
| 498 } | |
| 477 | 499 |
| 478 CREATE_REDIRECT_HANDLER(HomePage, "/") | 500 CREATE_REDIRECT_HANDLER(HomePage, "/") |
| 479 CREATE_REDIRECT_HANDLER(Resume, "/resume") | 501 CREATE_REDIRECT_HANDLER(Resume, "/resume") |
| 480 CREATE_REDIRECT_HANDLER(Tools, "/tools") | 502 CREATE_REDIRECT_HANDLER(Tools, "/tools") |
| 481 CREATE_REDIRECT_HANDLER(MarkDownToHtml, "/tools/markdown_to_html") | 503 CREATE_REDIRECT_HANDLER(MarkDownToHtml, "/tools/markdown_to_html") |
| 482 CREATE_REDIRECT_HANDLER(FileConverter, "/tools/file_converter") | 504 CREATE_REDIRECT_HANDLER(FileConverter, "/tools/file_converter") |
| 505 CREATE_REDIRECT_HANDLER(Talk, "/talk") | |
| 483 | 506 |
| 484 int main(void) | 507 int main(void) |
| 485 { | 508 { |
| 486 Seobeo_Router_Init(); | 509 Seobeo_Router_Init(); |
| 510 | |
| 487 Seobeo_Router_Register("GET", "/", GetHomePage); | 511 Seobeo_Router_Register("GET", "/", GetHomePage); |
| 488 Seobeo_Router_Register("GET", "/index.html", GetRedirectHomePage); | 512 Seobeo_Router_Register("GET", "/index.html", GetRedirectHomePage); |
| 489 | 513 |
| 490 Seobeo_Router_Register("GET", "/resume", GetResume); | 514 Seobeo_Router_Register("GET", "/resume", GetResume); |
| 491 Seobeo_Router_Register("GET", "/resume/index.html", GetRedirectResume); | 515 Seobeo_Router_Register("GET", "/resume/index.html", GetRedirectResume); |
| 506 | 530 |
| 507 // -- Blog --/ | 531 // -- Blog --/ |
| 508 Seobeo_Router_Register("GET", "/blog", RenderBlogList); | 532 Seobeo_Router_Register("GET", "/blog", RenderBlogList); |
| 509 Seobeo_Router_Register("GET", "/blog/:blog_id", RenderBlog); | 533 Seobeo_Router_Register("GET", "/blog/:blog_id", RenderBlog); |
| 510 | 534 |
| 535 // -- Talk --/ | |
| 536 Seobeo_Router_Register("GET", "/talk", GetTalk); | |
| 537 // Seobeo_Router_Register("GET", "/talk/index.html", GetRedirectTalk); | |
| 538 | |
| 539 printf("Registered Websockets\n"); | |
| 540 | |
| 541 Seobeo_WebSocket_Server_Init(); | |
| 542 Seobeo_WebSocket_Server_Register("/chat", Chat_Handler, NULL); | |
| 543 | |
| 511 Seobeo_Web_Server_Start("mrjunejune/src", "6969", SEOBEO_MODE_EDGE, 3); | 544 Seobeo_Web_Server_Start("mrjunejune/src", "6969", SEOBEO_MODE_EDGE, 3); |
| 512 } | 545 } |