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() {
|
void SSLServer::createRooms() {
|
||||||
// Load rooms from database or config
|
|
||||||
Json::Value roomList = _config->group("rooms");
|
|
||||||
|
|
||||||
std::cout << "[YourChat] createRooms() called" << std::endl;
|
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;
|
std::cout << "[YourChat] Config rooms size: " << roomList.size() << std::endl;
|
||||||
|
|
||||||
if (roomList.isArray() && roomList.size() > 0) {
|
if (roomList.isArray() && roomList.size() > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user