【问题标题】:React Native Websocket Android not connecting to serverReact Native Websocket Android未连接到服务器
【发布时间】:2016-02-19 15:23:31
【问题描述】:

我正在尝试使用 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 native 应用程序时,我从来没有看到控制台消息“绑定到聊天室”。我错过了什么吗?为什么这个 websocket 永远不会打开?

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

这里描述: http://www.websocket.org/echo.html

这是一个已知的工作 websocket,所以我知道这纯粹是一个反应原生问题......

【问题讨论】:

    标签: websocket react-native


    【解决方案1】:

    原来我有这行代码

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

    在错误的地方。如果你把它移到componentWillMount中,它工作得很好。

    【讨论】:

    • 我认为你的意思是 componentDidMount
    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多