Невозможно удаленно подключиться к серверу WebSocket с помощью приложения React, работающего в Expo - PullRequest
0 голосов
/ 21 апреля 2019

Мне не удалось установить соединение WebSocket между клиентом приложения React Native (запущенным в Expo) и сервером NodeJs, используя библиотеку веб-сокетов 'ws' с обеих сторон.

Я настроил сервер WebSocket, к которому я могу успешно подключиться с помощью клиента веб-сокета с расширением Chrome, после ввода IP-адреса и порта, например, 'ws: //192.168.208.1: 8080'.

Я установил клиентский код в приложении, но он не может подключиться к серверу!Однако я могу без проблем подключаться и отправлять сообщения на эхо-URL Websocket '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);
        });

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Спасибо за ответы, оказалось, что я использовал адрес ipv4 от неправильного адаптера!

0 голосов
/ 22 апреля 2019

Попробуйте использовать https://ngrok.com, чтобы выставить ваш локальный сервер на всеобщее обозрение. затем используйте публичный URL, который этот инструмент дает вам в вашем приложении.

...