Füge kurze Verzögerung im ChatUser hinzu und entferne überflüssige Socket-Validierung
- Ergänze eine Wartezeit von 500 Millisekunden, um den Abschluss des WebSocket-Handshakes sicherzustellen. - Entferne die zusätzliche Socket-Validierung, um den Code zu vereinfachen und die Lesbarkeit zu verbessern.
This commit is contained in:
@@ -252,6 +252,9 @@ namespace Yc
|
|||||||
void ChatUser::checkerTask()
|
void ChatUser::checkerTask()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
// Warte kurz, damit der WebSocket-Handshake vollständig abgeschlossen ist
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||||
|
|
||||||
// Heartbeat-Intervall: Alle 10 Sekunden Verbindung prüfen
|
// Heartbeat-Intervall: Alle 10 Sekunden Verbindung prüfen
|
||||||
const int HEARTBEAT_INTERVAL = 2;
|
const int HEARTBEAT_INTERVAL = 2;
|
||||||
int heartbeatCounter = 0;
|
int heartbeatCounter = 0;
|
||||||
@@ -360,16 +363,6 @@ namespace Yc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zusätzliche Socket-Validierung mit fcntl
|
|
||||||
int flags = fcntl(_socket, F_GETFL);
|
|
||||||
if (flags == -1) {
|
|
||||||
#ifdef YC_DEBUG
|
|
||||||
std::cout << "[Debug] Socket " << _socket << " is invalid (fcntl failed), skipping send" << std::endl;
|
|
||||||
#endif
|
|
||||||
_socket = -1; // Markiere als ungültig
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Entferne ggf. Token-Felder aus JSON-Strings und sende über Socket/WebSocket
|
// Entferne ggf. Token-Felder aus JSON-Strings und sende über Socket/WebSocket
|
||||||
Base::sanitizeTokensInString(out);
|
Base::sanitizeTokensInString(out);
|
||||||
Base::send(_socket, out);
|
Base::send(_socket, out);
|
||||||
|
|||||||
Reference in New Issue
Block a user