@chrome123

Как извлечь новую запись и базы NodeJS + mysql?

Подскажите как правильно реализовать вывод новой строки из БД по инициативе сервера?
Сервер соединен с клиентом через Сокеты.
Пытался сделать так.
latest - ID последнего выведенного сообщения.
message[0] - Мой ID
message[1] - ID Собеседника
setInterval(function(){
connection.query('SELECT * FROM messages  WHERE id>'+latest+' &&  ((sender='+message[0]+' && recipient='+message[1]+') || (sender='+message[1]+' && recipient='+message[0]+')) ORDER BY id DESC', function(err, rows, fields) {
            if (err) throw err;
// Отправка данных пользователю
        });

        },1);


Но этот вариант не подходит. Поскольку получается так что. Если очень много пользователей. То Запись не успевает отправится клиенту, а setInterval идет уже по 2 кругу. И запись дублируется 2-3 раза. Хотя я с этой проблемой воюю уже достаточно давно и на других форумах меня уверяли, что это Хороший вариант реализации моей задачи.

Также пытался реализовать данную задачу через Тригеры и Хранимые процедуры. Но эти попытки тоже не увенчались успехом.
  • Вопрос задан
  • 2409 просмотров
Пригласить эксперта
Ответы на вопрос 1
ZOTTCE
@ZOTTCE
У вас явно должны быть события, отвечающие за отправку сообщения клиентом.
Почему бы вам там не сделать отправление уведомления, если пользователь, которому адресовано сообщение, подключен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы