#javascript #node.js #server
#javascript #node.js #сервер
Вопрос:
Я пытаюсь создать приложение для извлечения данных из локальной базы данных, структуры приложения, которое у меня есть: мобильное приложение, сервер (на хостинге) и локальный сервер (на моем ПК), я пытаюсь заставить мобильное приложение запрашивать данные с сервера через обычныйHTTP-запрос затем сервер запрашивает данные с локального сервера, но проблема в том, что я не смог подключиться к своему локальному серверу Я считаю, что я не смог подключиться к своему локальному серверу, потому что мой локальный сервер не имеет общедоступного IP-адреса, поэтому я пытаюсь найти лучший способ добитьсямоя идея.
Я кое-что читал о Websocket, но я не знаю, подходит ли это для моей идеи, потому что это двунаправленное соединение, и оно чаще всего используется для приложения для общения в чате
Я хочу создать приложение с помощью NodeJS, так что мне делать, чтобы реализовать эту идею, и спасибо за помощь.
Комментарии:
1. Ваш сервер и локальный сервер находятся в одной сети?
2. Что именно вы подразумеваете под «локальным»? Локальный в той же сети, что и «сервер»?
3. Пожалуйста, опубликуйте код, который вы пытались подключить к вашему серверу базы данных, без этого мы вряд ли сможем помочь. Но да, это довольно стандартная настройка для запуска базы данных на отдельном сервере.
4. Это очень распространенное явление. @obeda они оба находятся в одной сети? Правильно ли вы устанавливаете IP-адреса. То, что вы пытаетесь сделать, довольно распространено. Задействованы ли 2 контейнера Docker в какой-либо форме или форме, которые потребовали бы от вас сохранения обоих серверов в одной сети
5. Я думаю, стоит спросить, почему удаленный сервер должен запрашивать данные с вашего локального сервера. Почему бы просто не поместить все в место, где части могут легко общаться друг с другом?
Ответ №1:
Каждый сервер находится в другой сети, основной сервер находится на хосте Heroku, а локальный сервер находится на моем персональном компьютере
Жизнь была бы намного проще для вас, если бы вы переместили свой локальный сервер на Heroku, где им было бы намного проще и безопаснее общаться друг с другом.
Вы не можете подключиться со своего сервера Heroku к серверу в вашей частной локальной сети, потому что он находится за брандмауэром вашего домашнего маршрутизатора. Чтобы разрешить такое соединение, вам необходимо настроить известный общедоступный IP-адрес для вашей домашней сети (который не будет меняться или использовать DDNS, если он может измениться) и настроить переадресацию портов в вашем брандмауэре / маршрутизаторе, чтобы входящие соединения из Интернета на определенном порту могли достигать вашего локального сервера. Затем вам придется защитить свой локальный сервер от случайных интернет-атак, поскольку тогда он будет открыт для Интернета.
Еще одна возможность заключается в том, что вы можете подключить свой локальный сервер к вашему серверу Heroku (возможно, с помощью соединения WebSocket с использованием каких-либо секретных учетных данных). Поскольку ваш сервер Heroku уже доступен из вашей домашней сети, это потребует меньшего изменения конфигурации сети. В зависимости от того, что вы пытаетесь сделать между двумя серверами, вы можете либо попросить локальный сервер просто отправить обычный http-запрос на сервер Heroku (либо отправить данные, либо запросить данные), либо вы можете установить соединение с WebSocket, а затем данные могут быть отправлены любым способом соединения с WebSocket.