Node.JS, кажется, ограничен в своей способности обновлять код в реальном времени и в своей способности автоматически изолировать исключения. Оба из них практически по умолчанию в Java.
Один очень эффективный способ обновления в режиме реального времени - это процесс слушателя, который просто передает информацию в / из дочернего процесса. Затем для обновления слушатель запускает нового дочернего элемента (который автоматически читает обновленный код), а затем начинает отправлять запросы новому дочернему элементу, заканчивая старый дочерний элемент, когда все запросы завершены.
- Уже существует система, обеспечивающая эту функцию http через stdout / stdin.
- Существует ли система, которая обеспечивает работу сервера TCP или сервера UDP через stdout / stdin.
Под этим я подразумеваю предоставление модуля, который выглядит как модуль http
или net
, за исключением того, что он использует stdout / stdin для базового ввода-вывода.
Аналогично Этот модуль CGI
Некоторые приложения должны будут изменить require('http')
на require('cgi')
.
Я собираюсь сделать что-то подобное. Я надеюсь повторно использовать код, если он уже есть, а также легко конвертировать небольшой или специализированный веб-сервер в этот слой слушателя, который запускает множество веб-приложений. Важно, чтобы очистка происходила правильно. Соединения, которые заканчиваются или ошибка должны быть освобождены, а события / команды завершения / ошибки должны правильно отображаться в обоих направлениях.
(я считаю, что обычным способом является прослушивание портами дочерних элементов, а родительский интерфейс взаимодействует с этими портами, но я думаю, что решение stdout / stdin будет более эффективным)