0

我在尝试在 React Native 应用程序客户端(在 Expo 中运行)和 NodeJs 服务器之间建立 WebSocket 连接时没有成功,使用双方的“ws”websocket 库。

我已经设置了 WebSocket 服务器,在输入 IP 地址和端口(例如“ws://192.168.208.1:8080”后,我可以使用 chrome 扩展 websocket 客户端成功连接到该服务器。

我已经在应用程序中设置了客户端代码,但它无法连接到服务器!但是,我可以毫无问题地连接到 Websocket echo url '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);
        });

4

2 回答 2

0

感谢您的回复,原来我使用了来自错误适配器的 ipv4 地址!

于 2019-04-22T10:24:48.320 回答
0

尝试使用https://ngrok.com 将您的 localhost 服务器公开。然后使用此工具在您的应用程序中为您提供的公共 URL。

于 2019-04-21T21:40:06.713 回答