Ändere WebSocket-Protokollnamen und verbessere Server-Logging

- Aktualisiere den Protokollnamen von "yourchat-protocol" auf "chat" für bessere Klarheit.
- Füge WebSocket-spezifische Optionen hinzu, um Sicherheitspraktiken zu verbessern.
- Ergänze Logging für HTTP-Anfragen, um den Upgrade-Prozess zu WebSocket zu verfolgen.
This commit is contained in:
Torsten Schulz (local)
2025-09-04 15:10:40 +02:00
parent 6b49fff85e
commit 34edbac487

View File

@@ -17,7 +17,7 @@ SSLServer* SSLServer::_instance = nullptr;
// Protocols array definition // Protocols array definition
struct lws_protocols SSLServer::_protocols[] = { struct lws_protocols SSLServer::_protocols[] = {
{ {
"yourchat-protocol", "chat",
SSLServer::wsCallback, SSLServer::wsCallback,
sizeof(WebSocketUserData), sizeof(WebSocketUserData),
4096 4096
@@ -110,6 +110,9 @@ void SSLServer::startServer() {
std::cout << "[YourChat] WebSocket Server starting on port " << _port << " (no SSL)" << std::endl; std::cout << "[YourChat] WebSocket Server starting on port " << _port << " (no SSL)" << std::endl;
} }
// WebSocket-spezifische Optionen
info.options |= LWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE;
// Reduziere Log-Level um weniger Debug-Ausgaben zu haben // Reduziere Log-Level um weniger Debug-Ausgaben zu haben
setenv("LWS_LOG_LEVEL", "0", 1); // 0 = nur Fehler setenv("LWS_LOG_LEVEL", "0", 1); // 0 = nur Fehler
@@ -159,8 +162,14 @@ int SSLServer::wsCallback(struct lws *wsi, enum lws_callback_reasons reason, voi
switch (reason) { switch (reason) {
case LWS_CALLBACK_ESTABLISHED: case LWS_CALLBACK_ESTABLISHED:
std::cout << "[YourChat] WebSocket-Verbindung hergestellt" << std::endl; std::cout << "[YourChat] WebSocket-Verbindung hergestellt" << std::endl;
// Request callback when writable to send initial message
lws_callback_on_writable(wsi);
break; break;
case LWS_CALLBACK_HTTP:
std::cout << "[YourChat] HTTP request received, upgrading to WebSocket" << std::endl;
return 0;
case LWS_CALLBACK_RECEIVE: { case LWS_CALLBACK_RECEIVE: {
std::string msg(reinterpret_cast<char*>(in), len); std::string msg(reinterpret_cast<char*>(in), len);
std::cout << "[YourChat] WebSocket-Nachricht empfangen: " << msg << std::endl; std::cout << "[YourChat] WebSocket-Nachricht empfangen: " << msg << std::endl;