React本机Websocket Android未连接到服务器
我正在尝试使用React Native的内置Websocket支持。我有以下代码: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
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