Frage

Ich versuche, eine gute Möglichkeit zu erhalten, die Datenbank für mein soziales Netzwerk zu aktualisieren, wenn Benutzer die Verbindung trennen, da der Benutzer nicht mehr auf der Website ist. Skripte können nicht aktiviert werden, um die Datenbank zu aktualisieren und Ereignisse an andere Benutzer auf dem Site, also denke ich, dass ich zu etwas brauche, wie dies auf dem Server selbst ist, anstatt sich auf das Client -Seiten -Skripten zu verlassen.

Im Moment mache ich so etwas auf dem serverseitigen Teil des Skripts (das immer noch vom Benutzer geladen wird)

socket.on('disconnect', function () { 
socket.broadcast.emit('disconnect', { data : session});
}); 

Dies löst dann das Ereignis auf dem Benutzer -Side -Scripting erneut aus und führt ein AJAX -Ereignis aus, um die MySQL -Datenbank zu aktualisieren, und dann ein anderes Socket -Ereignis auszulösen, das an die Benutzer gesendet wird, die informiert, dass dieser Benutzer getrennt ist. Dies funktioniert jedoch nur, wenn der Benutzer ihre schließt Browser, aber nicht wie den Laptop oder das Gerät, und es ist auch darauf angewiesen, dass sie an andere Benutzer gesendet werden, damit sie damit umgehen können, was ich nicht haben kann.

Das beunruhigt mich sehr, ich muss eine Lösung finden.

War es hilfreich?

Lösung

Verwenden Sie AJAX -Umfragen (senden Sie AJAX -Requitionen kontinuierlich, worauf der Server hört und nach 10 Sekunden Zeitüberschreitung zum Timeout ermöglicht), um zu signalisieren, dass der Benutzer noch online ist. Wenn der Server keine Anfragen erhält, hat sich der Benutzer angemeldet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top