node.js - New websocket on different instance of site -
i have remote control 4 devices running on node server.
each device has own page (/1, /2, /3, /4), generated same html/js.
the difference ip each device, loaded json on server depending on url path.
this works, problem is: have 3 wrong ips entered testing purposes, , 1 correct one. if open correct one, go parent page , open page of device wrong ip, still shown online , can controlled.
i understand like: socket stays open across pages , not built new on every site.
how can make sure each subpage generates new socket?
right now, have
socket = new io.connect();   in browser.js,
ioserver.on('connection', function (socket) {     //etc. }   in app.js , works 1 device.
am right assume need kind of "destroy socket if page changed"-function?
thanks help
by looks of it, want instantiate , boot device when device's client connects first time , emits 'startup'. if not case, i'd instantiate , boot each device when server starts.
going first case, i'd store devices in key-value object , reuse them when needed.
var devices = {};  ioserver.on('connection', function (socket) {      var client_ip_address = socket.request.connection.remoteaddress;     console.log("new connection from: " + client_ip_address);      var device;      socket.on('startup', function (data) {          var deviceid = data.device;          console.log("[info] startup: device " + deviceid);          //if device in devices, resuse             if (deviceid in devices) {              //get device devices object             device = devices[deviceid];          //otherwise, create new device , store in devices         } else {              device = new hyperdeck(deviceid);              //store new device in devices object             devices[deviceid] = device;              device.boot();         }          console.log(device.id);         console.log(device.ip);     });      ...      
Comments
Post a Comment