Я создаю угловое приложение, которое позволит одновременно подключить около тысячи человек, чтобы забронировать билет.Я хочу, чтобы только «XYZ» из них имели доступ одновременно при регистрации углового компонента.Другие будут видеть компонент "зал ожидания", пока не наступит их очередь.Я настроил все это так:
- Пользователь заходит на страницу.
- Я делаю http-вызов серверу expressjs
- Сервер проверяет, "подключены ли""коллекция содержит менее XYZ документов
- Если true, разблокируется компонент регистрации пользователя, и с помощью http post req он создает новый документ в базе данных.если значение false, оно оставляет его скрытым и отображает компонент комнаты ожидания
- Когда пользователь покидает страницу, его документ в коллекции «соединений» уничтожается вызовом http delete.
Полностью работает.
Проблема сейчас в том, что я хочу создать своего рода «приоритетную» систему, потому что, если вы просто обновитесь, вам может повезти и получить доступ, даже если вы скоро приехали и тамэто кто ждет с 1990 года.Поэтому я ввел систему «приоритетов».Когда пользователь делает первый http-вызов, если пользователь не разрешен, сервер создает временную метку и помещает ее в массив.
const timestamps = []
.
.
.
// this below is in http get req
Connessione.countDocuments({},(err,count)=>{
if(count<=nmax){
console.log("Ok")
res.status(200).json({allowed: true})
}
else{
const timestamp = req.params.timestamp;
timestamps.push(timestamp);
console.log("Semo troppi")
res.status(401).json({allowed: false})
}
});
Идея состоит в том, чтобы прослушивать изменения в БД, и когда есть толькоXYZ-1 в БД.Позвоните на угловой интерфейс первой метки времени, чтобы сказать ему: «Привет, если хочешь, чтобы мы закончили. Ты можешь идти» и разблокировать ему доступ к компоненту регистрации.
Проблема в том, что я могуне делать непрерывные HTTP-запросы каждую секунду от угловых до тех пор, пока не будет свободного места ... Есть ли какой-нибудь метод для отправки запроса на сервер, и когда сервер говорит «ОК», вызывает угловой и говорит: «Эй, чувак. Ты можешь идти!»?Надеюсь, вы поняли мой вопрос.Если нет, спросите меня в комментариях.Заранее спасибо