Как мне подключиться к локальному серверу Rails через приложение React Native, работающее на Expo? - PullRequest
1 голос
/ 11 октября 2019

Я унаследовал довольно сложное приложение React Native, поэтому заранее прошу прощения, если я не знаю всего, что я должен знать о приложении, когда задаю этот вопрос.

У меня есть приложение React Native, котороеиспользует Expo. Я запускаю expo start, чтобы запустить Metro в браузере. Затем я использую опцию LAN, чтобы подключить свой iPhone к локальному приложению через приложение Expo на моем телефоне. Когда я использую локальную сеть, я подключаюсь к локальному приложению на своем компьютере через IP-адрес, который выглядит как 192.168.0.xxx:19000.

Приложение прекрасно загружается на моем телефоне, но всякий раз, когда я пытаюсь выполнить сетевой запрос (т. Е. fetch вызов сервера Rails, также работающего на моем локальном компьютере), приложение не может подключиться к серверу.

Я запускаю сервер Rails с помощью следующей команды: rails server

Когда сервер Rails запущен, я могу перейти к 127.0.0.1:3000 в своем браузере, чтобы увидеть серверную часть приложения, созданного в Rails.

Однако всякий раз, когда я делаю fetch запрос от приложения к API на 127.0.0.1:3000 или 192.168.0.xxx:19000 (xxx - это фактическое трехзначное число), запрос не выполняется. По сути, я не могу понять, как сделать правильный запрос из приложения React Native, работающего на моем телефоне через Expo, на сервер Rails, работающий на моей локальной машине.

Я пробовал что-то вроде http против https, но не повезло. Я также погуглил это, и до сих пор не могу понять, что происходит. Отчасти проблема заключается в том, что само приложение настолько большое и сложное, и я все еще настолько новичок в нем, что я не уверен, просто ли я в корне неправильно понимаю, как Expo и React Native должны отправлять запросы обратно. конец, или если в самом приложении есть что-то странное, что мешает мне делать запросы.

Буду очень признателен за любые советы / идеи о том, как я могу потенциально заставить приложение правильно подключаться к серверу Rails. Спасибо.

1 Ответ

1 голос
/ 12 октября 2019

Вам нужно либо запустить приложение реакции локально, чтобы получить доступ к локальному бэкэнду, либо изменить порт приложения localhost, чтобы сделать его доступным для Интернета.

Как вы сказали,запуск чего-то вроде

$ rails server -b 0.0.0.0

позволит вам получить к нему доступ.

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