Skip to content
This repository has been archived by the owner on Dec 16, 2022. It is now read-only.

Commit

Permalink
Server: don't keep layers object in memory. Read it always from disk.
Browse files Browse the repository at this point in the history
There was probably a bug: the layers object in memory was never updated,
only created once.
  • Loading branch information
hamoid committed Nov 15, 2014
1 parent e189e3d commit 4df52e1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 25 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -1 +1,4 @@
/sorted.db
/layers.db
/chat.log
node_modules/
45 changes: 20 additions & 25 deletions server.js
Expand Up @@ -37,7 +37,6 @@ io.on('connection', function(socket) {
console.log('user connected');

var layersSorted = {};
var layers = {};

function getUsersInRoom(user, room) {
var names = [];
Expand All @@ -56,31 +55,27 @@ io.on('connection', function(socket) {
}

function sendLayersToUser() {
if(layers[socket.room] == undefined) {
layers[socket.room] = {};
dbLayers.find({ room: socket.room }, function(err, layerData) {
if (layerData.length > 0) {
for(var i in layerData) {
var n = layerData[i].name;
layers[socket.room][n] = {
name: n,
vars: layerData[i].vars,
draw: layerData[i].draw
};
}
var layers = {};
dbLayers.find({ room: socket.room }, function(err, layerData) {
if (layerData.length > 0) {
for(var i in layerData) {
var n = layerData[i].name;
layers[n] = {
name: n,
vars: layerData[i].vars,
draw: layerData[i].draw
};
}
dbSorted.findOne({ room: socket.room }, function(err, sortedData) {
if(sortedData && sortedData.names) {
layersSorted[socket.room] = sortedData.names;
} else {
layersSorted[socket.room] = [];
}
socket.emit('allLayers', layersSorted[socket.room], layers[socket.room]);
});
}
dbSorted.findOne({ room: socket.room }, function(err, sortedData) {
if(sortedData && sortedData.names) {
layersSorted[socket.room] = sortedData.names;
} else {
layersSorted[socket.room] = [];
}
socket.emit('allLayers', layersSorted[socket.room], layers);
});
} else {
socket.emit('allLayers', layersSorted[socket.room], layers[socket.room]);
}
});
}

socket.on('addUser', function(username) {
Expand Down Expand Up @@ -126,6 +121,7 @@ io.on('connection', function(socket) {
socket.on('vars', function(name, obj) {
dbLayers.update(
{ room: socket.room, name: name },
// error: it replaces vars, instead of mixing
{ $set: { room: socket.room, name: name, vars: obj } },
{ upsert: true },
function(err, numReplaced, newDoc) {
Expand Down Expand Up @@ -173,7 +169,6 @@ io.on('connection', function(socket) {
{ $set: { room: socket.room, names: layersSorted[socket.room] } },
{ upsert: true },
function(err, numReplaced, newDoc) {
delete layers[socket.room][name];
console.log('update dbSorted', name, err, numReplaced, newDoc);
io.to(socket.room).emit('remove', name, layersSorted[socket.room]);
}
Expand Down

0 comments on commit 4df52e1

Please sign in to comment.