1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- http = require('http');
- var history = [];
- var errorMessages = {
- "0": "All fine",
- "-1": "No space left in DB",
- "-2": "Wrong data",
- "-3": "Apocalypse",
- "-4": "REALLY Wrong data",
- };
- var RPCFuncs = {
- getMessages: function(data){
- var messageId = +data.messageId;
- return history.slice(messageId);
- },
- addMessage: function(data){
- history.push(data);
- }
- };
- server = http.createServer(function(req, res){
- if (req.method == "POST"){
- var body = '';
- req.on('data', function (data) {
- body += data;
- });
- req.on('end', function () {
- console.log("Body: " + body);
- try{
- var data = JSON.parse(body);
- }
- catch (e){
- console.log("wrong JSON");
- var errorCode = -4;
- res.end(JSON.stringify({errorCode: errorCode, errorMessage: errorMessages[errorCode]}));
- return;
- }
- var timestamp =(new Date()).getTime();
- //var errorCode = 0 - Math.floor(Math.random()*4)
- //res.end(JSON.stringify({errorCode: errorCode, errorMessage: errorMessages[errorCode]}));
- if ("func" in data){
- if (data.func in RPCFuncs){
- var func = data.func;
- delete data.func;
- data.timestamp = timestamp;
- var result = {data: RPCFuncs[func](data), nextMessageId: history.length};
- console.log("answer on request:");
- console.log(JSON.stringify(result));
- res.end(JSON.stringify(result));
- }
- else {
- console.log("no func in functions array" + body);
- }
- }
- else {
- console.log("no func key in data:" + body);
- }
- });
- res.setHeader('Access-Control-Allow-Origin', '*');
- res.setHeader('Access-Control-Request-Method', '*');
- res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, POST');
- res.setHeader('Access-Control-Allow-Headers', '*');
- res.writeHead(200, {'Content-Type': 'text/json'});
- //res.end('post received');
- }
- });
- port = 8070;
- host = '164.138.30.21';
- server.listen(port, host);
- console.log("Listen...");
|