more untested server stuff

This commit is contained in:
Astro 2010-12-04 22:04:58 +01:00
parent d12a1a27da
commit 94021daf77
3 changed files with 92 additions and 14 deletions

View File

@ -1,5 +1,5 @@
var Connect = require('connect');
var spacesocket = require('../lib/spacesocket');
var spacesocket = require('spacesocket');
var ltx = require('ltx');
var WS_PROTOCOL = 'nedap-kneemFothbedchoadHietEnobKavLub1';
@ -84,19 +84,23 @@ spacesocket.attach(server, function(conn) {
backend = conn;
conn.on('data', function(data) {
var msg = JSON.parse(data);
console.log({msg: msg});
if (msg.joker) {
question = msg.joker.question;
answers = msg.joker.answers;
scores = [];
for(var i = 0; i < answers.length; i++)
scores[i] = 0;
}
if (msg.clear) {
question = null;
answers = null;
scores = null;
try {
var msg = JSON.parse(data);
console.log({msg: msg});
if (msg.joker) {
question = msg.joker.question;
answers = msg.joker.answers;
scores = [];
for(var i = 0; i < answers.length; i++)
scores[i] = 0;
}
if (msg.clear) {
question = null;
answers = null;
scores = null;
}
} catch (e) {
console.error(e.stack);
}
});

21
quiz.js
View File

@ -49,6 +49,27 @@ function loadQuizData(done) {
});
}
var url = 'ws://' + document.location.host + '/';
var ws = new WebSocket(url, 'quiz');
ws.onerror = function(e) {
console.error(e.message);
};
ws.onclose = function() {
console.error('WebSocket closed');
};
var onBackendMessage;
ws.onmessage = function(data) {
try {
var msg = JSON.parse(data);
if (onBackendMessage)
onBackendMessage(msg);
} catch(e) {
console.error(e.message);
}
};
function Timer() {
$('#timer').hide();
this.cb = null;

53
server.js Normal file
View File

@ -0,0 +1,53 @@
var Connect = require('connect');
var spacesocket = require('spacesocket');
var WS = require('websocket-client');
var frontend;
/* TODO: url */
var nedap = new WS.WebSocket('http://localhost:8080/', 'nedap-kneemFothbedchoadHietEnobKavLub1');
nedap.onopen = function() {
console.log('NEDAP opened');
};
nedap.onclose = function() {
console.log('NEDAP closed');
};
nedap.onerror = function(e) {
console.log('NEDAP error: ' + e.message);
};
nedap.onmessage = function(data) {
try {
var msg = JSON.parse(data);
frontend.send(JSON.stringify({ nedap: msg }));
} catch (e) {
console.error(e.stack);
}
};
var server = Connect.createServer(
Connect.logger(),
Connect.bodyDecoder(),
Connect.staticProvider(__dirname),
Connect.errorHandler({ dumpExceptions: true, showStack: true })
);
server.listen(8081);
spacesocket.attach(server, function(conn) {
if (conn.protocol === 'quiz') {
frontend = conn;
conn.on('data', function(data) {
var msg = JSON.parse(data);
if (msg.nedap)
nedap.send(JSON.stringify(msg.nedap));
});
var reset = function() {
frontend = null;
};
conn.on('close', reset);
conn.on('error', reset);
} else {
conn.end();
}
});