diff --git a/server/socket.js b/server/socket.js index 2851749..dfabe65 100755 --- a/server/socket.js +++ b/server/socket.js @@ -1,18 +1,5 @@ module.exports = function (io, io_api, sql, app_cfg, waip) { - // Module laden - //client.js - - var socket_api = io_api.connect(app_cfg.global.remoteapi, { - reconnect: true - }); - - // Add a connect listener - socket_api.on('connect', function (socket_api) { - console.log('Connected!'); - }); - socket_api.emit('CH01', 'me', 'test msg'); - // Socket.IO Alarmmonitor var nsp_waip = io.of('/waip'); @@ -103,8 +90,58 @@ nsp_dbrd.on('connection', function (socket) { // Socket.IO API -// TODO: Schnittstelle zu weiterem Wachalarm-Web-Server um Einsätze und Rückmeldungen untereinander auszutauschen +if (app_cfg.api.enabled) { + 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; + //FIXME pruefen ob Verbindung mit passendem Secret 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); + }); + }); +}; + + // Module laden + //client.js + + + + // Add a connect listener + remote_api.on('connect', function (remote_api) { + console.log('Connected!'); + }); + + socket.on('connect_error', function (err) { + $('#waipModalTitle').html('FEHLER'); + $('#waipModalBody').html('Verbindung zum Server getrennt!'); + $('#waipModal').modal('show'); + }); + + remote_api.emit('CH01', 'me', 'test msg'); }; \ No newline at end of file