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

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

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

WebSocket - это метод связи в сети в реальном времени - он пользуется широкой поддержкой и действительно не заботится о том, на какой платформе он используется (браузеры, серверы Node.js , Устройства IoT,…).

Я провел очень быстрое (буквально 60 минут активной работы по программированию) доказательство концепции использования WebSocket для потоковой передачи данных с сервера Node.js непосредственно на веб-страницу, на которой запущен визуализация данных с помощью LightningChart JS, и в результате получилась эта изящная маленькая панель с движущимися данными в реальном времени:

Вышеупомянутый результат - это старые новости, однако часть, где это становится интересным, - это когда мы увеличиваем объем вводимых данных. На моем обычном офисном ПК я мог передавать в потоковом режиме 300 000 точек данных в секунду и отображать их со стабильной скоростью 60 кадров в секунду .

Числа сложны, и людям они не нравятся, поэтому давайте посмотрим, что это на самом деле;

Допустим, наш случай использования - это мониторинг таких факторов, как температура и напряжение, в контексте научных испытаний, и требуется различать отдельные миллисекунды. В этом случае мы могли контролировать 300 источников данных одновременно, не теряя никаких деталей между миллисекундными интервалами.

Это впечатляет, и до недавнего времени это было невозможно.
LightningChart JS - относительно новый элемент в экосистеме веб-диаграмм, и только весной 2021 года с нашим выпуском v3.0.0 мы преодолели прежние мировые ограничения визуализации линейных диаграмм в сети.

В противном случае этот вид приложения был бы ограничен тем, сколько времени требуется клиенту для визуализации входящих данных. В реальном мире это означает, что придется пойти на компромисс в отношении разрешения данных или использовать какой-либо другой неоптимальный подход - например, переход на «почти в реальном времени», когда данные обновляются каждые 10 секунд или около того.

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

Я с нетерпением жду возможности увидеть, какие реальные приложения наши пользователи могут создавать с помощью аппаратно ускоренной визуализации данных на стороне клиента и потоковой передачи данных WebSocket!

Соответствующий код можно найти в моем GitHub project.