Как добавить узел js emit event на стороне сервера для создания новых записей, вставленных в базу данных? - PullRequest
0 голосов
/ 19 февраля 2019

Я разрабатываю серверный сокет js-узла, который должен отправлять новые записи клиенту.

Я имею в виду, представьте, что у меня есть база данных mysql, а узел js запущен, и я хочу создать любойновая запись, которая вставляется в базу данных в режиме реального времени, именно эта последняя вставленная запись.

Теперь я использую таймер узла js, и этот таймер проверяет базу данных и отправляет все записи клиенту каждую 1 секунду, я этого не хочу.

Я много искал, но ничего подобного не нашел.спасибо за любое предложение.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Самый простой способ сделать это - выдать событие сразу после сохранения записи в дб, например,

// Supose, используя mongodb и node

  let newStudent = new Student(studentToBeRegistered);
  newStudent.save().then((data: any) => {
     // on success
     // emit socket
     socket.emit('newRecord', data)
    }).catch((err) => {
    console.log(err)
    });
0 голосов
/ 19 февраля 2019

Один из возможных способов, который был исследован ранее, - это прослушивание двоичного журнала Mysql , также сокращенного binlog .

Вот два пакета, связанных с ним:

  • Первый пакет, называемый Zongji , предназначен для прослушивания binlog-файлов Mysql: Npm - zongji .
  • Второй пакет, называемый mysql-events , используя первый пакет для более удобного прослушивания событий: Npm - mysql-events

Второй пакет имеет лункудокументация, которая позволит вам быстро приступить к прослушиванию обновлений Mysql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...