Я пишу приложение Electron, которое должно отправлять довольно много данных каждые ~ 25 мс от средства визуализации в отдельный процесс Node, запущенный в основном процессе с собственным модулем fork
.
Данные выглядяткак это: [{ x: int, y: int }, ...]
, с примерно 1000 точками в нем (и немного больше информации, чем показано здесь для краткости).
Я начал использовать ipc.send
в процессе рендеринга, но у него довольно серьезное снижение производительности: 4,25 мс для каждого ipc.send
.
Итак, я рассмотрел запуск WebSocket с пакетом ws
npm в раздвоенном процессе Node и отправку данных через WebSocket с помощью JSON.Это было намного лучше.Даже улучшил его, используя avsc
вместо анализа в JSON (от ~ 4мс до ~ 1мс).
Таким образом, решение WebSocket работает отлично, но есть проблема: ему нужно найти свободный порт иперейти по локальной сети.В macOS это также вызывает диалог:
Хотите ли вы, чтобы приложение "x.app" принимало входящие сетевые подключения?
Этот диалог в сочетании с хитростьюя бы хотел избежать использования локальной сети, если это возможно.
Мой вопрос: Кто-нибудь знает лучшее решение для отправки данных другим процессам в Electron, которое неперейти по локальной сети?