diff --git a/api/index.js b/api/index.js index 5d8341f2..e4c967ff 100644 --- a/api/index.js +++ b/api/index.js @@ -5,6 +5,7 @@ const WebSocket = require("ws"); var last_status = {}; var last_image; var received_picture = false; +var received_error = false; app.use(express.static("public")); app.use(express.json()); @@ -32,7 +33,10 @@ ws.on("message", function message(message) { // console.log("RECEIVED: " + msg.data); }); -ws.on("error", console.error); +ws.on("error", function error(err) { + console.error("error: " + err); + received_error = true; +}); // set the view engine to ejs app.set("view engine", "ejs"); @@ -74,8 +78,12 @@ app.post("/move", function (req, res) { app.get("/connect", function (req, res) { console.log("got connect request"); ws = new WebSocket("ws://10.100.0.40:9001/"); - while (api_connected == false) { } - res.status(200).json({ connected: true }); + while (api_connected == false && received_error == false) { } + if (api_connected) { + res.status(200).json({ connected: true }); + } else { + res.status(400).json({ connected: false }); + } }); diff --git a/api/views/index.ejs b/api/views/index.ejs index 6a8efa5b..d0b03d05 100644 --- a/api/views/index.ejs +++ b/api/views/index.ejs @@ -155,6 +155,14 @@ // console.log(status) document.getElementById("connectedstatus").innerHTML = "Connected: " + status.connected; } + } else { + console.log("error"); + if (this.responseText.length > 0) { + var status = JSON.parse(this.responseText); + // console.log(status) + document.getElementById("connectedstatus").innerHTML = "Connected: " + status.connected; + } + alert("Could not connect to API!"); } }; xhr.send();