我在尝试在 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);
});