DIKunin
@DIKunin
Front-end Developer

Как средствами Node.js и Socket.io сделать отображение графиков в реальном времени?

Приветствую!

Ситуация - на сервер Node.js передается в бинарном виде данные - массив чисел и дат(если быть точным сейсмические данные, то есть в массиве идут парные массивы - точка/дата). С ним идет небольшая обработка, после чего большой кусок данных посылается на клиента через socket.io. Объем данных - примерно 9 массивов, по 4000 точек. На клиенте данные распределяются по графикам flot (people.iola.dk/olau/flot/examples/). На клиенте стоит счетчик, который обновляет графики каждые 3 секунды.

Проблема - производительность данной конструкции довольно низкая, максимум как часто можно обновлять графики - как указано 3 секунды - иначе ui подвисает на глухо. Если пытаться передавать не массив целиком, а только его кусочек - могут возникать провисы при склейке массива на фронте. При этом спустя 10 минут работы графики начинают сильно отставать от полученных данных по времени - и если поток данных обрубить - то данные продолжают идти, как будтно они застряли в очереди и вот только прорвались.

Буду рад любым советам, как более оптимально настроить передачу данных, возможно сменить библиотеку графиков на более оптимальную (к сожалению передача готового сгенерированного изображения не подходит - так как на фронте генерируется тултип на графиках).

Заранее благодарю.
  • Вопрос задан
  • 3300 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы