diff --git a/public/js/client_waip.js b/public/js/client_waip.js index 412a021..abfc206 100644 --- a/public/js/client_waip.js +++ b/public/js/client_waip.js @@ -226,7 +226,7 @@ var socket = io.connect(); // Wachen-ID bei Connect an Server senden socket.on('connect', function() { - socket.emit('wachen_id', wachen_id); + socket.emit('WAIP', wachen_id); $('#waipModal').modal('hide'); }); diff --git a/server/socket.js b/server/socket.js index 6467b3c..9d79973 100755 --- a/server/socket.js +++ b/server/socket.js @@ -1,39 +1,37 @@ -module.exports = function(io, sql, app_cfg, waip) { +module.exports = function (io, sql, app_cfg, waip) { // Module laden //client.js var io_api = require('socket.io-client'); - var socket_api = io_api.connect(app_cfg.global.remoteapi, {reconnect: true}); + var socket_api = io_api.connect(app_cfg.global.remoteapi, { + reconnect: true + }); -// Add a connect listener -socket_api.on('connect', function (socket_api) { + // Add a connect listener + socket_api.on('connect', function (socket_api) { console.log('Connected!'); -}); -socket_api.emit('CH01', 'me', 'test msg'); - - + }); + socket_api.emit('CH01', 'me', 'test msg'); + // Socket.IO Server - io.on('connection', function(socket) { - sql.db_log('WAIP', 'Anwendung von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geoeffnet'); + io.on('connection', function (socket) { + sql.db_log('WAIP', 'Wachalarm von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geoeffnet'); + //zuerst Server-Version senden, damit der Client diese prueft und die Seite ggf. neu lädt io.sockets.to(socket.id).emit('io.version', app_cfg.global.app_id); - // disconnect - socket.on('disconnect', function() { - sql.db_log('WAIP', 'Alarmmonitor von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geschlossen'); - sql.db_client_delete(socket.id); - }); + // Aufruf des Alarmmonitors einer bestimmten Wache verarbeiten - socket.on('wachen_id', function(wachen_id) { + socket.on('wachen_id', function (wachen_id) { sql.db_log('WAIP', 'Alarmmonitor Nr. ' + wachen_id + ' von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') aufgerufen'); // prüfen ob Wachenummer in der Datenbank hinterlegt ist - sql.db_wache_vorhanden(wachen_id,function(result) { + sql.db_wache_vorhanden(wachen_id, function (result) { // wenn die Wachennummer vorhanden/plausibel dann weiter if (result) { // Socket-Room beitreiten - socket.join(wachen_id, function() { + socket.join(wachen_id, function () { // Socket-ID und Client-IP in der Datenbank speichern sql.db_client_save(socket.id, socket.request.connection.remoteAddress, wachen_id); // prüfen ob für diese Wache ein Einsatz vorhanden ist - sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function(result_einsatz) { + sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function (result_einsatz) { if (result_einsatz) { console.log(result_einsatz[0].waip_einsaetze_ID); sql.db_log('WAIP', 'Einsatz ' + result_einsatz[0].waip_einsaetze_ID + ' fuer Wache ' + wachen_id + ' vorhanden'); @@ -56,22 +54,10 @@ socket_api.emit('CH01', 'me', 'test msg'); }; }); }); - //socket.on('response', function(waip_id, responseobj) { - //var i_ek = ek ? 1 : 0; - //var i_ma = ma ? 1 : 0; - //var i_fk = fk ? 1 : 0; - //var i_agt = agt ? 1 : 0; - //sql.db_update_response(waip_id, responseobj, function(result){ - //waip.reuckmeldung_verteilen(waip_id, result); - //}); - //}); - // TODO: socket.on(Version) um Server-Version abzugleichen + // disconnect verarbeiten + socket.on('disconnect', function () { + sql.db_log('WAIP', 'Alarmmonitor von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geschlossen'); + sql.db_client_delete(socket.id); + }); }); - - - - - //return { - // send_message: send_message - //}; -}; +}; \ No newline at end of file diff --git a/server/sql_qry.js b/server/sql_qry.js index ea9bc06..31c363b 100755 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -39,6 +39,7 @@ module.exports = function(db, uuidv4, turf, app_cfg) { }; function db_einsatz_speichern(content, callback) { + content = JSON.parse(content); // uuid erzeugen und zuweisen falls nicht vorhanden if (!content.einsatzdaten.uuid) { content.einsatzdaten.uuid = uuidv4(); diff --git a/server/waip.js b/server/waip.js index 0338541..29e262d 100755 --- a/server/waip.js +++ b/server/waip.js @@ -1,30 +1,30 @@ module.exports = function (io, sql, tw, async, app_cfg) { // Einsatzmeldung in Datenbank speichern - function einsatz_speichern(message) { + function einsatz_speichern(einsatz_rohdaten) { // Einsatzmeldung (JSON) speichern - sql.db_einsatz_speichern(JSON.parse(message), function (waip_id) { - // nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln - sql.db_log('WAIP', 'DEBUG: ' + waip_id); - sql.db_get_einsatz_rooms(waip_id, function (data) { - if (data) { - console.log(data); - data.forEach(function (row) { - // fuer jede Wache(row.room) die verbundenen Sockets(Clients) ermitteln und Einsatz verteilen - var room_sockets = io.sockets.adapter.rooms[row.room]; + sql.db_einsatz_speichern(einsatz_rohdaten, function (waip_id) { + sql.db_log('WAIP', 'DEBUG: Neuer Einsatz mit der ID ' + waip_id); + // nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln + sql.db_get_einsatz_rooms(waip_id, function (socket_rooms) { + if (socket_rooms) { + socket_rooms.forEach(function (rooms) { + // fuer jede Wache(rooms.room) die verbundenen Sockets(Clients) ermitteln und den Einsatz verteilen + //io.to(rooms.room).emit('io.response', rmld); + var room_sockets = io.sockets.adapter.rooms[rooms.room]; //console.log(row); //console.log(row.room); //console.log(room_sockets); //console.log(io.sockets.adapter); if (typeof room_sockets !== 'undefined') { Object.keys(room_sockets.sockets).forEach(function (socketId) { - einsatz_verteilen(waip_id, socketId, row.room); - sql.db_log('WAIP', 'Einsatz ' + waip_id + ' wird an ' + socketId + ' (' + row.room + ') gesendet'); + einsatz_verteilen(waip_id, socketId, rooms.room); + sql.db_log('WAIP', 'Einsatz ' + waip_id + ' wird an ' + socketId + ' (' + rooms.room + ') gesendet'); }); }; }); } else { - sql.db_log('Fehler-WAIP', 'Fehler: Wache für waip_id ' + waip_id + ' nicht vorhanden!'); + sql.db_log('Fehler-WAIP', 'Fehler: Keine Wache für den Einsatz mit der ID ' + waip_id + ' vorhanden!'); }; }); sql.db_get_twitter_list(waip_id, function (twitter_data) {