Ergänze Unterstützung für das Laden von Räumen aus der Datenbank in der createRooms-Methode des SSLServers
- Implementiere eine Fehlerbehandlung, um Räume aus der Datenbank zu laden und bei einem Fehler auf die Konfiguration zurückzugreifen. - Füge detaillierte Logging-Ausgaben hinzu, um den Prozess des Ladens von Räumen zu verfolgen und die Anzahl der geladenen Räume zu dokumentieren.
This commit is contained in:
@@ -425,10 +425,35 @@ void SSLServer::broadcastToRoom(const std::string& roomName, const std::string&
|
||||
}
|
||||
|
||||
void SSLServer::createRooms() {
|
||||
// Load rooms from database or config
|
||||
Json::Value roomList = _config->group("rooms");
|
||||
|
||||
std::cout << "[YourChat] createRooms() called" << std::endl;
|
||||
|
||||
// Try to load rooms from database first
|
||||
try {
|
||||
Json::Value dbRooms = _database->getRooms();
|
||||
std::cout << "[YourChat] Database returned " << dbRooms.size() << " rooms" << std::endl;
|
||||
|
||||
if (dbRooms.isArray() && dbRooms.size() > 0) {
|
||||
std::cout << "[YourChat] Loading rooms from database..." << std::endl;
|
||||
for (const auto& room : dbRooms) {
|
||||
std::cout << "[YourChat] Database room: " << room << std::endl;
|
||||
auto newRoom = std::make_shared<ChatRoom>(nullptr, room);
|
||||
_rooms.push_back(newRoom);
|
||||
}
|
||||
std::cout << "[YourChat] Loaded " << _rooms.size() << " rooms from database" << std::endl;
|
||||
for (const auto& room : _rooms) {
|
||||
std::cout << "[YourChat] Loaded room: '" << room->name() << "'" << std::endl;
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
std::cout << "[YourChat] No rooms found in database, falling back to config" << std::endl;
|
||||
}
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "[YourChat] Failed to load rooms from database: " << e.what() << std::endl;
|
||||
std::cout << "[YourChat] Falling back to config..." << std::endl;
|
||||
}
|
||||
|
||||
// Fallback to config
|
||||
Json::Value roomList = _config->group("rooms");
|
||||
std::cout << "[YourChat] Config rooms size: " << roomList.size() << std::endl;
|
||||
|
||||
if (roomList.isArray() && roomList.size() > 0) {
|
||||
|
||||
Reference in New Issue
Block a user