React本机Websocket Android未连接到服务器

React本机Websocket Android未连接到服务器,websocket,react-native,Websocket,React Native,我正在尝试使用React Native的内置Websocket支持。我有以下代码: var hostname = "192.168.X.XXX"; var port = "4567"; const webSocket = new WebSocket("ws://" + hostname + ":" + port + "/chat"); 我有这个: componentWillMount: function(){ console.log("MOUNTING CHAT COMPONEN

我正在尝试使用React Native的内置Websocket支持。我有以下代码:

var hostname = "192.168.X.XXX";
var port = "4567";
const webSocket = new WebSocket("ws://" + hostname + ":" + port + "/chat");
我有这个:

  componentWillMount: function(){

    console.log("MOUNTING CHAT COMPONENT");
    webSocket.onopen = function(){ 
      console.log("binding to chat room");
      bindToChatRoom(); 
      setTimeout(keepWebSocketOpen, 30000); 
      ws_connected = true; 
    };

    webSocket.onmessage = function (msg) {
      this.handleMsg(msg); 
    };

    webSocket.onclose = function () {
      console.log("WebSocket connection closed"); 
      ws_connected = false; 
    };

    webSocket.onerror = function (e){
      //add some error handling -> DO THIS
      console.log(e.message);
    };
  },
我正在使用sparkjava运行一个本地服务器,其中包括:

    webSocket("/chat", ChatWebSocketHandler.class);
等等。我已经测试了服务器,我可以通过笔记本电脑上的网络浏览器和手机上的URL 192.168.x.xxx:4567/chat连接到它(并发送消息)。然而,当我运行react本机应用程序时,我从未看到控制台消息“binding to chat room”。我错过什么了吗?为什么这个websocket永远不会打开

我只想指出,我也尝试在这里连接: ws://echo.websocket.org

这里描述的是:


这是一个已知的正在工作的websocket,所以我知道这纯粹是一个react本机问题…

原来我有一行代码

const webSocket = new WebSocket("ws://echo.websocket.org");

在错误的地方。如果您将其移动到componentWillMount,它就可以正常工作。

我想您指的是componentDidMount