pngs/server.js

67 lines
1.5 KiB
JavaScript
Raw Normal View History

2010-12-04 22:04:58 +01:00
var Connect = require('connect');
var wss = require('websocket-server');
var wsc = require('websocket-client');
2010-12-04 22:04:58 +01:00
var frontend;
/* TODO: url */
2010-12-06 19:19:52 +01:00
var nedap;
function connectNedap() {
nedap = new wsc.WebSocket('ws://localhost:8080/', 'quiz-nedap');
nedap.onopen = function() {
console.log('NEDAP opened');
nedap.send('nedap-kneemFothbedchoadHietEnobKavLub1');
};
nedap.onclose = function() {
console.log('NEDAP closed');
connectNedap();
};
nedap.onerror = function(e) {
console.log('NEDAP error: ' + e.message);
connectNedap();
};
nedap.onmessage = function(data) {
try {
var msg = JSON.parse(data);
console.log({ fromNedap: msg });
frontend.send(JSON.stringify({ nedap: msg }));
} catch (e) {
console.error(e.stack);
}
};
}
connectNedap();
2010-12-04 22:04:58 +01:00
var server = Connect.createServer(
Connect.logger(),
Connect.bodyDecoder(),
Connect.staticProvider(__dirname),
Connect.errorHandler({ dumpExceptions: true, showStack: true })
);
wss.createServer({ server: server }).on('connection', function(conn) {
2010-12-06 19:10:44 +01:00
frontend = conn;
2010-12-04 22:04:58 +01:00
2010-12-06 19:10:44 +01:00
conn.on('message', function(data) {
console.log({data:data});
try {
2010-12-04 22:04:58 +01:00
var msg = JSON.parse(data);
if (msg.nedap) {
console.log({ toNedap: msg.nedap });
2010-12-04 22:04:58 +01:00
nedap.send(JSON.stringify(msg.nedap));
}
2010-12-06 19:10:44 +01:00
} catch (e) {
console.error(e.stack);
}
});
2010-12-04 22:04:58 +01:00
2010-12-06 19:10:44 +01:00
var reset = function() {
frontend = null;
};
conn.on('close', reset);
conn.on('error', reset);
2010-12-04 22:04:58 +01:00
});
server.listen(8081);