#react-native #websocket #server #expo #ws
#react-native #websocket #сервер #expo #ws
Вопрос:
Мне не удалось установить соединение WebSocket между клиентом React Native app (работающим в Expo) и сервером NodeJS, используя библиотеку websocket ‘ws’ с обеих сторон.
Я настроил сервер WebSocket, к которому я могу успешно подключиться с помощью клиента websocket с расширением Chrome, после ввода IP-адреса и порта, например, ‘ws: //192.168.208.1:8080’.
Я настроил клиентский код в приложении, но он не может подключиться к серверу! Однако я могу подключаться и отправлять сообщения на URL-адрес Websocket echo ‘wss://echo.websocket.org /’ без проблем!
Таким образом, код работает корректно с обеих сторон в тестовых примерах, похоже, что существует проблема с установлением этого удаленного подключения.
Проверка работоспособности 1. Оба устройства подключены к одной сети Wi-Fi 2. Я попытался подключиться после отключения брандмауэра
КЛИЕНТСКИЙ КОД:
// THIS DOESN'T WORK!
// this.ws = new WebSocket('ws://192.168.208.1:8080/');
// THIS DOES WORK!
// this.ws = new WebSocket('wss://echo.websocket.org/');
this.ws.onopen = (evt) => console.log('connected');
this.ws.addEventListener('open', () => {
this.ws.send(JSON.stringify('Hello!'));
});
this.ws.addEventListener('message', event => {
console.log('Received:', event.data);
});
Комментарии:
1. Есть ли какие-либо журналы ошибок или сообщения?
Ответ №1:
Попробуйте использовать https://ngrok.com чтобы предоставить доступ к вашему серверу localhost для общего доступа. затем используйте общедоступный URL, который этот инструмент предоставляет вам внутри вашего приложения.