diff --git a/server/api.js b/server/api.js index 52d5c77..8dde408 100755 --- a/server/api.js +++ b/server/api.js @@ -1,45 +1,44 @@ module.exports = function (io, io_api, sql, app_cfg, waip) { - // Module laden - const io_api = require('socket.io-client'); + // Module laden + const io_api = require('socket.io-client'); + // Socket.IO API (anderer Server stellt Verbindung her und sendet Daten) - // Socket.IO API + if (app_cfg.api.enabled) { + // Namespace API + var nsp_api = io.of('/api'); + nsp_api.on('connection', function (socket) { + // versuche Remote-IP zu ermitteln + var remote_ip = socket.handshake.headers["x-real-ip"] || socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; - if (app_cfg.api.enabled) { - var nsp_api = io.of('/api'); + //TODO pruefen ob Verbindung mit passendem Geheimnis und aus IP-Bereich - nsp_api.on('connection', function (socket) { - // versuche Remote-IP zu ermitteln - var remote_ip = socket.handshake.headers["x-real-ip"] || socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; - //TODO pruefen ob Verbindung mit passendem Geheimnis und aus IP-Bereich - //secret: 'asdfwert1234567890#', - //access_list: ['192.168.2.20', '192.168.2.30'] - - // in Liste der Clients mit aufnehmen - sql.db_update_client_status(socket, 'api'); - // Neuen Einsatz speichern - socket.on('new_waip', function (data) { - sql.db_log('API', 'Neuer Einsatz von ' + remote_ip + ': ' + data); - waip.einsatz_speichern(data); - }); - socket.on('new_rmld', function (data) { - sql.db_save_rmld(data, function (result) { - if (result) { - waip.rmld_verteilen_by_uuid(data.waip_uuid, data.rmld_uuid); - sql.db_log('API', 'Rückmeldung von ' + remote_ip + ' gespeichert: ' + data); - } else { - sql.db_log('API', 'Fehler beim speichern der Rückmeldung von ' + remote_ip + ': ' + data); - }; - }); - }); - // Disconnect - socket.on('disconnect', function () { - sql.db_log('API', 'Schnittstelle von ' + remote_ip + ' (' + socket.id + ') geschlossen.'); - sql.db_client_delete(socket); - }); + // in Liste der Clients mit aufnehmen + sql.db_update_client_status(socket, 'api'); + // Neuen Einsatz speichern + socket.on('new_waip', function (data) { + waip.einsatz_speichern(data); + sql.db_log('API', 'Neuer Einsatz von ' + remote_ip + ': ' + data); + }); + // neue externe Rueckmeldung speichern + socket.on('new_rmld', function (data) { + sql.db_save_rmld(data, function (result) { + if (result) { + waip.rmld_verteilen_by_uuid(data.waip_uuid, data.rmld_uuid); + sql.db_log('API', 'Rückmeldung von ' + remote_ip + ' gespeichert: ' + data); + } else { + sql.db_log('API', 'Fehler beim speichern der Rückmeldung von ' + remote_ip + ': ' + data); + }; }); - }; + }); + // Disconnect + socket.on('disconnect', function () { + sql.db_log('API', 'Schnittstelle von ' + remote_ip + ' (' + socket.id + ') geschlossen.'); + sql.db_client_delete(socket); + }); + }); + };