Модель потоков Javascript для нескольких веб-сокетов - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть клиент javascript, который должен взаимодействовать с более чем 1 сервером Websocket.Один из этих серверов отправляет небольшие высокочастотные полезные данные, которые я могу быстро обработать, а другой отправляет большие низкочастотные данные, обработка которых занимает много времени:

this.hifreq = new WebSocket("ws://192.168.1.2:4646/hi");
this.hifreq.onmessage = this.onHighfreqMessage;

this.lofreq = new WebSocket("ws://192.168.1.3:4646/lo");
this.lofreq.onmessage = this.onLowfreqMessage;

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

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

Я прихожу из C ++ / Java фона, поэтому я пытаюсь понять, какие у меня есть варианты.

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать Web Worker для выполнения тяжелых фоновых задач.Обратите внимание, что JavaScript все еще кажется однопоточным.У вас нет доступа к объекту окна страницы в рабочем потоке.Вы должны использовать postMessage и onmessage на DedicatedWorkerGlobalScope для связи с основным сценарием.

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