У меня есть приложение, которое имеет дело с WebRT C. Я планирую использовать Firebase RTDB для сигнализации и администрирования пользовательских подключений к комнатам.
Я искал, как управлять присутствием пользователя, чтобы автоматически отключать пользователя от комнаты, когда он закрывает браузер. Из документации кажется, что единственный способ сделать это - через клиентскую сторону:
firebase.database().ref('.info/connected').on('value', function(snapshot) {
if (snapshot.val() == false) {
return;
};
userStatusDatabaseRef.onDisconnect().set(isOfflineForDatabase).then(function() {
userStatusDatabaseRef.set(isOnlineForDatabase);
});
});
Хотя это работает в обычных случаях, что, если есть злонамеренный пользователь, который переписывает код, чтобы сделать это вместо этого :
userStatusDatabaseRef.set(isOnlineForDatabase);
Из того, что я вижу здесь, это может сделать пользователя постоянно подключенным к сети, независимо от того, отключен он или нет.
И с другой точки зрения, похоже, что такой способ действий нарушает принцип "никогда не доверяй клиенту".
Есть ли что-то, что я здесь упускаю? Или может быть обходной путь? Может быть, функция, которая срабатывает, когда пользователь слушает «.info / connected»?
Хотелось бы услышать ваш вклад по этому вопросу.