У меня есть веб-приложение nodejs, которое подключается в качестве клиента к веб-сокету и отправляет мне push-уведомления всякий раз, когда происходят определенные события. Он также имеет функции для отправки запросов в REST API на основе информации, полученной из того же веб-узла.
До сих пор я запускал это приложение локально и постоянно держал свой ноутбук включенным. Но скоро я собираюсь путешествовать, так что держать ноутбук на 24x7 больше не вариант.
Что я могу сделать, чтобы я мог запускать это приложение 24 часа в сутки, 7 дней в неделю (поскольку оно должно быть постоянно подключено к веб-сокету), не оставляя свой ноутбук работающим?
Единственный вариант, о котором я могу думать, - это запускать приложение локально в Digital Ocean Droplet, а затем RDP в капле, когда мне нужно его использовать. Таким образом, он работает 24 часа в сутки, 7 дней в неделю, и я могу получить к нему доступ, когда захочу, по протоколу RDP в капле. Единственное, что меня беспокоит, это то, будут ли более дешевые капли достаточно мощными, чтобы позволить мне использовать RDP в них и использовать приложение без задержек.
Доступ к этому приложению через Интернет не требуется. Было бы лучше объединить его как приложение Electron и затем запустить на удаленном сервере, чем просто запустить его на 127.0.0.1?
Цените ваш вклад.
Спасибо!
Да, в таких случаях запуск программы на сервере - это примерно то, что вы делаете.
Могу порекомендовать Non-Sucking Service Manager (https://nssm.cc/), чтобы программа продолжала работать.
Что касается того, чтобы заставить его хорошо работать на дешевом экземпляре сервера: превращение его в приложение Electron добавит пару сотен мегабайт раздутости и полностью новую среду выполнения в вашу программу.
Если рентабельность важна, можете ли вы взаимодействовать с веб-приложением, используя только команды HTTP GET и POST, а не запускать локальный веб-браузер на сервере? Если ваша программа не требует для работы графического интерфейса пользователя, существуют жизнеспособные альтернативы запуску полнофункционального сервера Windows с поддержкой рабочего стола, который может немного снизить эксплуатационные расходы:
(Если вы все же решите разрешить RDP, примите меры, разрешающие доступ только через VPN или, самое большее, только с определенных известных IP-адресов. Это не тот протокол, который был разработан для безопасной передачи в Интернет.)