3d-interface/socket.js

55 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-06-09 17:40:58 +02:00
var fs = require('fs');
var sleep = require('sleep');
module.exports = function(io) {
io.on('connection', function(socket) {
2015-06-10 11:24:59 +02:00
var index = 0;
var path;
var vIndex = 0;
var fIndex = 0;
console.log(socket.conn.remoteAddress + " connected !");
2015-06-09 17:40:58 +02:00
socket.on('disconnect', function() {
2015-06-10 11:24:59 +02:00
console.log(socket.conn.remoteAddress + " disconnected !");
2015-06-09 17:40:58 +02:00
});
socket.on("request", function(res) {
console.log('Asking for static/data/spheres/' + res + '.obj');
2015-06-10 11:24:59 +02:00
path = 'static/data/spheres/' + res + '.obj.obj';
socket.emit('ok');
});
socket.on('next', function() {
fs.readFile(path, function(err, data) {
2015-06-09 17:40:58 +02:00
var lines = data.toString('utf-8').split("\n");
2015-06-10 11:24:59 +02:00
var line = lines[index];
2015-06-10 11:50:47 +02:00
var toSend = [];
2015-06-10 11:24:59 +02:00
2015-06-10 11:50:47 +02:00
for (var i = 0; i < 50; i++) {
while (line && line[0] !== 'f') {
toSend.push(line);
line = lines[++index];
}
2015-06-10 11:24:59 +02:00
2015-06-10 11:50:47 +02:00
if (line && line[0] === 'f') {
toSend.push(line);
line = lines[++index];
}
}
2015-06-10 11:24:59 +02:00
if (!line) {
socket.emit('finished');
}
2015-06-09 17:40:58 +02:00
2015-06-10 11:50:47 +02:00
socket.emit('elements', toSend);
2015-06-10 11:24:59 +02:00
2015-06-09 17:40:58 +02:00
});
});
});
}