better handling of web socket listeners
This commit is contained in:
parent
47571bcb73
commit
4647189130
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name" : "node-red-contrib-web-worldmap",
|
"name" : "node-red-contrib-web-worldmap",
|
||||||
"version" : "1.0.8",
|
"version" : "1.0.9",
|
||||||
"description" : "A Node-RED node to provide a web page of a world map for plotting things on.",
|
"description" : "A Node-RED node to provide a web page of a world map for plotting things on.",
|
||||||
"dependencies" : {
|
"dependencies" : {
|
||||||
"express": "4.*",
|
"express": "4.*",
|
||||||
|
22
worldmap.js
22
worldmap.js
@ -25,19 +25,21 @@ module.exports = function(RED) {
|
|||||||
//node.log("Serving map from "+__dirname+" as "+RED.settings.httpNodeRoot.slice(0,-1)+"/worldmap");
|
//node.log("Serving map from "+__dirname+" as "+RED.settings.httpNodeRoot.slice(0,-1)+"/worldmap");
|
||||||
RED.httpNode.use("/worldmap", express.static(__dirname + '/worldmap'));
|
RED.httpNode.use("/worldmap", express.static(__dirname + '/worldmap'));
|
||||||
var callback = function(socket) {
|
var callback = function(socket) {
|
||||||
node.status({fill:"green",shape:"dot",text:"connected"});
|
node.status({fill:"green",shape:"dot",text:"connected "+Object.keys(io.sockets.connected).length});
|
||||||
node.on('input', function(msg) {
|
node.on('input', function(msg) {
|
||||||
socket.emit("worldmapdata",msg.payload);
|
socket.emit("worldmapdata",msg.payload);
|
||||||
});
|
});
|
||||||
socket.on('disconnect', function() {
|
socket.on('disconnect', function() {
|
||||||
node.status({fill:"red",shape:"ring",text:"disconnected"});
|
node.status({fill:"green",shape:"ring",text:"connected "+Object.keys(io.sockets.connected).length});
|
||||||
});
|
});
|
||||||
node.on("close", function() {
|
node.on("close", function() {
|
||||||
node.status({});
|
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
io.sockets.removeListener('connection', callback);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
node.on("close", function() {
|
||||||
|
node.status({});
|
||||||
|
io.sockets.removeListener('connection', callback);
|
||||||
|
});
|
||||||
io.on('connection', callback );
|
io.on('connection', callback );
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("worldmap",WorldMap);
|
RED.nodes.registerType("worldmap",WorldMap);
|
||||||
@ -46,20 +48,22 @@ module.exports = function(RED) {
|
|||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
var node = this;
|
var node = this;
|
||||||
var callback = function(socket) {
|
var callback = function(socket) {
|
||||||
node.status({fill:"green",shape:"dot",text:"connected"});
|
node.status({fill:"green",shape:"dot",text:"connected "+Object.keys(io.sockets.connected).length});
|
||||||
socket.on('worldmap', function(data) {
|
socket.on('worldmap', function(data) {
|
||||||
node.send({payload:data, topic:"worldmap"});
|
node.send({payload:data, topic:"worldmap"});
|
||||||
});
|
});
|
||||||
socket.on('disconnect', function() {
|
socket.on('disconnect', function() {
|
||||||
node.status({fill:"red",shape:"ring",text:"disconnected"});
|
node.status({fill:"green",shape:"ring",text:"connected "+Object.keys(io.sockets.connected).length});
|
||||||
node.send({payload:{action:"disconnect"}, topic:"worldmap"});
|
node.send({payload:{action:"disconnect", clients:Object.keys(io.sockets.connected).length}, topic:"worldmap"});
|
||||||
});
|
});
|
||||||
node.on("close", function() {
|
node.on("close", function() {
|
||||||
node.status({});
|
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
io.sockets.removeListener('connection', callback);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
node.on("close", function() {
|
||||||
|
node.status({});
|
||||||
|
io.sockets.removeListener('connection', callback);
|
||||||
|
});
|
||||||
io.on('connection', callback);
|
io.on('connection', callback);
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("worldmap in",WorldMapIn);
|
RED.nodes.registerType("worldmap in",WorldMapIn);
|
||||||
|
Loading…
Reference in New Issue
Block a user