Есть ли загрузчик javascript, который может ограничить количество сокетов до 1 или 2
Я хочу создать сетевое встроенное устройство с помощью одностраничного приложения AJAX для настройки HTML5/JS.
Моя проблема заключается в том, что браузеры открывают слишком много соединений в настоящее время, в моем устройстве число одновременных подключений не более 4 с аппаратным стеком TCP (пожалуйста, помните, что это встроенное устройство).
Любой запрос через сокет> 4 кажется потерянным, нужно нажимать клавишу F5, пока комбинация элементов приложения и кэша не появится в браузере.
Теперь моей первоначальной идеей было использование загрузчика js (с favicon в качестве URL-адреса данных) в качестве индексного документа, который, в свою очередь, загружает остальную часть приложения по одному (возможно, также с индикатором выполнения, но это было бы роскошью).
Теоретически это должно гарантировать, что в одно время открыто только одно соединение.
Все js-загрузчики, которые я обнаружил, предназначены для распараллеливания и ускорения в широкополосных средах на кластерных веб-серверах с балансировкой нагрузки, но мне нужна сериализация и надежность на крошечном 8-битном MCU с веб-сервером.
Любые советы или указания приветствуются!
Редактировать: я должен извиниться за взаимозаменяемое использование "сокета" и "соединения", я имел в виду "соединение" и соответственно изменил исходный пост.
1 ответ
Единственный способ надежно ограничить количество подключений, которые браузер устанавливает к вашему серверу, состоит в том, чтобы всего лишь одно соединение загружало все на вашей странице. Другими словами, все должно быть встроено.
<!DOCTYPE html>
<html><head><title>MCU app</title>
<link rel="shortcut icon" href="data:...">
<style>
/* css here */
</style>
<script>
// JS here
</script>
</head>
<body>
</body>
</html>
Конечно, следите за <img>
теги.
Другой вариант, который я рассмотрю, - это размещение вашего HTML/JS/CSS/etc на обычном веб-сервере и выполнение только вызовов API для встроенного устройства.
Например, вы бы открыли mycoolembeddedapp.com в своем браузере. Приложение может запросить IP-адрес встроенного устройства, а затем совершить AJAX-вызовы на этот IP-адрес с помощью CORS.