vnoření mapObject zpet do map

NettyPing
Michal 2025-02-13 20:34:43 +01:00
parent ca6161b505
commit 758ce624ef
6 changed files with 150 additions and 95 deletions

164
log.log
View File

@ -1,60 +1,104 @@
13.02.25 18:7:16 I --------------------------------------------- 13.02.25 20:29:14 I ---------------------------------------------
13.02.25 18:7:16 I jNet Server 13.02.25 20:29:14 I jNet Server
13.02.25 18:7:16 I Version: 1 (Thu Feb 13 09:04:35 CET 2025) 13.02.25 20:29:14 I Version: 1 (Thu Feb 13 09:04:35 CET 2025)
13.02.25 18:7:16 I --------------------------------------------- 13.02.25 20:29:14 I ---------------------------------------------
13.02.25 18:7:16 I 13.02.25 20:29:14 I
13.02.25 18:7:16 I Loading config ... 13.02.25 20:29:14 I Loading config ...
13.02.25 18:7:16 I successfully 13.02.25 20:29:15 I successfully
13.02.25 18:7:16 D Debug mode on 13.02.25 20:29:15 D Debug mode on
13.02.25 18:7:16 I Connecting to a selected database ... 13.02.25 20:29:15 I Connecting to a selected database ...
13.02.25 18:7:16 I successfully 13.02.25 20:29:15 I successfully
13.02.25 18:7:16 I Loading user list ... 13.02.25 20:29:15 I Loading user list ...
13.02.25 18:7:16 I load 2 user(s) 13.02.25 20:29:15 I load 2 user(s)
13.02.25 18:7:16 I Loading map list ... 13.02.25 20:29:15 I Loading map list ...
13.02.25 18:7:16 I load 6 map(s) 13.02.25 20:29:15 I load 6 map(s)
13.02.25 18:7:16 I Loading object list ... 13.02.25 20:29:15 I Loading object type ...
13.02.25 18:7:17 I load 8 object(s) 13.02.25 20:29:15 I load 12 type(s)
13.02.25 18:7:17 I Loading object type ... 13.02.25 20:29:15 I Loading SNMP profile ...
13.02.25 18:7:17 I load 12 type(s) 13.02.25 20:29:15 I load 2 profile(s)
13.02.25 18:7:17 I Loading SNMP profile ... 13.02.25 20:29:15 I Loading events ...
13.02.25 18:7:17 I load 2 profile(s) 13.02.25 20:29:15 I load 35 event(s)
13.02.25 18:7:17 I Loading events ... 13.02.25 20:29:16 I Ping probe start
13.02.25 18:7:17 I load 30 event(s) 13.02.25 20:29:16 I Server is ready and listening on port 1225
13.02.25 18:7:17 I Ping probe start 13.02.25 20:29:16 D -> Message type: 1
13.02.25 18:7:17 I Server is ready and listening on port 1225 13.02.25 20:29:16 I Authorization request send (kubernetes.docker.internal)
13.02.25 18:7:49 D -> Message type: 1 13.02.25 20:29:16 D <- Message type: 3
13.02.25 18:7:49 I Authorization request send (kubernetes.docker.internal) 13.02.25 20:29:16 D -> Message type: 4
13.02.25 18:7:49 D <- Message type: 3 13.02.25 20:29:16 I User: michal logged in (kubernetes.docker.internal)
13.02.25 18:7:49 D -> Message type: 4 13.02.25 20:29:16 D <- Message type: 5
13.02.25 18:7:49 I User: michal logged in (kubernetes.docker.internal) 13.02.25 20:29:16 D <- Message type: 9
13.02.25 18:7:49 D <- Message type: 5 13.02.25 20:29:16 D <- For all. Message type: 7
13.02.25 18:7:49 D <- Message type: 9 13.02.25 20:29:16 D <- Message type: 13
13.02.25 18:7:49 D <- For all. Message type: 7 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 13 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 8
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 11
13.02.25 18:7:49 D <- Message type: 8 13.02.25 20:29:16 D <- Message type: 11
13.02.25 18:7:49 D <- Message type: 11 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 11 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 100
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 110
13.02.25 18:7:49 D <- Message type: 100 13.02.25 20:29:16 D <- Message type: 107
13.02.25 18:7:49 D <- Message type: 14 13.02.25 20:29:16 D <- Message type: 107
13.02.25 18:7:49 D <- Message type: 110 13.02.25 20:29:19 I Client disconnected
13.02.25 18:7:49 D <- Message type: 107 13.02.25 20:29:21 D -> Message type: 1
13.02.25 18:7:49 D <- Message type: 107 13.02.25 20:29:21 I Authorization request send (kubernetes.docker.internal)
13.02.25 18:8:31 D -> Message type: 105 13.02.25 20:29:21 D <- Message type: 3
13.02.25 18:8:31 D <- For all. Message type: 105 13.02.25 20:29:21 D -> Message type: 4
13.02.25 18:8:31 D <- For all. Message type: 108 13.02.25 20:29:21 I User: michal logged in (kubernetes.docker.internal)
13.02.25 20:29:21 D <- Message type: 5
13.02.25 20:29:21 D <- Message type: 9
13.02.25 20:29:21 D <- For all. Message type: 7
13.02.25 20:29:21 D <- Message type: 13
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 8
13.02.25 20:29:21 D <- Message type: 11
13.02.25 20:29:21 D <- Message type: 11
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 100
13.02.25 20:29:21 D <- Message type: 110
13.02.25 20:29:21 D <- Message type: 107
13.02.25 20:29:21 D <- Message type: 107
13.02.25 20:29:48 D -> Message type: 102
13.02.25 20:29:48 D <- For all. Message type: 106
13.02.25 20:29:51 D -> Message type: 102
13.02.25 20:29:51 D <- For all. Message type: 106
13.02.25 20:29:52 D -> Message type: 102
13.02.25 20:29:52 D <- For all. Message type: 106
13.02.25 20:29:53 D -> Message type: 102
13.02.25 20:29:53 D <- For all. Message type: 106
13.02.25 20:29:56 D -> Message type: 102
13.02.25 20:29:56 D <- For all. Message type: 106
13.02.25 20:29:57 D -> Message type: 102
13.02.25 20:29:57 D <- For all. Message type: 106
13.02.25 20:29:59 D -> Message type: 102
13.02.25 20:29:59 D <- For all. Message type: 106
13.02.25 20:30:38 D -> Message type: 105
13.02.25 20:30:38 D <- For all. Message type: 105
13.02.25 20:30:38 D <- For all. Message type: 108

View File

@ -164,7 +164,8 @@ public class Database {
Map m = new Map( Map m = new Map(
rs.getInt("id"), rs.getInt("id"),
rs.getString("name"), rs.getString("name"),
rs.getBoolean("locked")); rs.getBoolean("locked"),
getMapObject(rs.getInt("id")));
list.add(m); list.add(m);
} }
rs.close(); rs.close();

View File

@ -31,13 +31,13 @@ public class Server {
public static PropertiesManager config; public static PropertiesManager config;
public static List<Map> maps = new ArrayList<>(); public static List<Map> maps = new ArrayList<>();
public static ArrayList<MapObject> mapObject= new ArrayList<>(); //public static ArrayList<MapObject> mapObject= new ArrayList<>();
public static ArrayList<OnlineClients> onlineClients = new ArrayList<>(); public static List<OnlineClients> onlineClients = new ArrayList<>();
public static ArrayList<ObjectType> objectType = new ArrayList<>(); public static List<ObjectType> objectType = new ArrayList<>();
public static ArrayList<SnmpProfile> snmpProfile = new ArrayList<>(); public static List<SnmpProfile> snmpProfile = new ArrayList<>();
public static ArrayList<SnmpProbe> snmpProbe = new ArrayList<>(); public static List<SnmpProbe> snmpProbe = new ArrayList<>();
public static ArrayList<User> users = new ArrayList<>(); public static List<User> users = new ArrayList<>();
public static ArrayList<Event> events = new ArrayList<>(); public static List<Event> events = new ArrayList<>();
public static void main(String[] args) { public static void main(String[] args) {
@ -101,10 +101,6 @@ public class Server {
maps = Database.getMapList(); maps = Database.getMapList();
LogFile.printInfo(" load " + maps.size() + " map(s)"); LogFile.printInfo(" load " + maps.size() + " map(s)");
LogFile.printInfo("Loading object list ...");
mapObject = Database.getAllMapObject();
LogFile.printInfo(" load " + mapObject.size() + " object(s)");
LogFile.printInfo("Loading object type ..."); LogFile.printInfo("Loading object type ...");
objectType = Database.getObjectType(); objectType = Database.getObjectType();
LogFile.printInfo(" load " + objectType.size() + " type(s)"); LogFile.printInfo(" load " + objectType.size() + " type(s)");

View File

@ -34,7 +34,6 @@ public class ServerMessageParser {
LogFile.printDebug("-> Message type: " + msg.getType()); LogFile.printDebug("-> Message type: " + msg.getType());
ListIterator<Map> iteratorMap = Server.maps.listIterator(); ListIterator<Map> iteratorMap = Server.maps.listIterator();
ListIterator<MapObject> iteratorMapObject = Server.mapObject.listIterator();
switch (msg.getType()) { switch (msg.getType()) {
@ -98,8 +97,6 @@ public class ServerMessageParser {
for (Map i : Server.maps) { for (Map i : Server.maps) {
send(new Message(Message.MAP, i)); send(new Message(Message.MAP, i));
} }
// odeslat seznam objektu
send(Message.OBJECT_LIST, Server.mapObject);
// odeslat seznam udalosti // odeslat seznam udalosti
send(new Message(Message.EVENT_LIST, Server.events)); send(new Message(Message.EVENT_LIST, Server.events));
// odeslat seznam snmp profilů // odeslat seznam snmp profilů
@ -148,7 +145,11 @@ public class ServerMessageParser {
case Message.ADD_OBJECT: case Message.ADD_OBJECT:
MapObject mo = Database.addMapObject((MapObject) msg.getMsg()); MapObject mo = Database.addMapObject((MapObject) msg.getMsg());
// pridat do seznamu // pridat do seznamu
Server.mapObject.add(mo); for (Map map : Server.maps) {
if (map.getId() == mo.getMap()) {
map.getObjects().add(mo);
}
}
// odesle všem novy objekt // odesle všem novy objekt
sendAll(new Message(Message.ADD_OBJECT, mo)); sendAll(new Message(Message.ADD_OBJECT, mo));
// prida event a odesle ho // prida event a odesle ho
@ -162,18 +163,19 @@ public class ServerMessageParser {
break; break;
case Message.REMOVE_OBJECT: case Message.REMOVE_OBJECT:
while (iteratorMapObject.hasNext()) { for (Map map : Server.maps) {
MapObject obj = iteratorMapObject.next(); for (MapObject object : map.getObjects()) {
if (obj.getId() == (int) msg.getMsg()) { if (object.getId() == (int) msg.getMsg()) {
// odebere z databaze // odebere z databaze
Database.removeObject(obj.getId()); Database.removeObject(object.getId());
// odesle informaci o odebrani objektu klientum // odesle informaci o odebrani objektu klientum
sendAll(new Message(Message.REMOVE_OBJECT, obj.getId())); sendAll(new Message(Message.REMOVE_OBJECT, object.getId()));
// odebere ze seznamu // odebere ze seznamu
iteratorMapObject.remove(); map.getObjects().remove(object);
break; break;
} }
} }
}
break; break;
case Message.MAP_REMOVE: case Message.MAP_REMOVE:
@ -209,30 +211,34 @@ public class ServerMessageParser {
// zmenit v databázi // zmenit v databázi
Database.objectMove(data[0], data[1], data[2]); Database.objectMove(data[0], data[1], data[2]);
// zmenit v seznamu // zmenit v seznamu
while (iteratorMapObject.hasNext()) { for (Map mapa : Server.maps) {
MapObject obj = iteratorMapObject.next(); for (MapObject object : mapa.getObjects()) {
if (obj.getId() == data[0]) { if (object.getId() == data[0]) {
// zmenit pozici // zmenit pozici
obj.setX(data[1]); object.setX(data[1]);
obj.setY(data[2]); object.setY(data[2]);
// zapsat zmenu do databaze // zapsat zmenu do databaze
Database.objectMove(data[0], data[1], data[2]); Database.objectMove(data[0], data[1], data[2]);
// preposlat zmenu klientum // preposlat zmenu klientum
sendAll(new Message(Message.UPDATE_OBJECT, obj)); sendAll(new Message(Message.UPDATE_OBJECT, object));
break; break;
} }
} }
}
break; break;
case Message.UPDATE_OBJECT: case Message.UPDATE_OBJECT:
MapObject mo_u = (MapObject) msg.getMsg(); MapObject mo_u = (MapObject) msg.getMsg();
// zmenit v databazi // zmenit v databazi
Database.updateObject(mo_u); Database.updateObject(mo_u);
// zmenit v seznamu // zmenit v seznamu
while (iteratorMapObject.hasNext()) { for (Map m : Server.maps) {
if (iteratorMapObject.next().getId() == mo_u.getId()) { for (int i = 0; i < m.getObjects().size(); i++) {
iteratorMapObject.set(mo_u); if (m.getObjects().get(i).getId() == mo_u.getId()) {
m.getObjects().set(i, mo_u);
break; break;
} }
}
} }
// preposlat zmenu klientum // preposlat zmenu klientum
sendAll(new Message(Message.UPDATE_OBJECT, mo_u)); sendAll(new Message(Message.UPDATE_OBJECT, mo_u));

View File

@ -8,6 +8,7 @@ import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import jnet.lib.LogFile; import jnet.lib.LogFile;
import jnet.lib.Status; import jnet.lib.Status;
import jnet.lib.object.Map;
import jnet.lib.object.MapObject; import jnet.lib.object.MapObject;
import jnet.server.Server; import jnet.server.Server;
@ -21,11 +22,14 @@ public class NettyPing extends Thread {
@Override @Override
public void run() { public void run() {
LogFile.printInfo("Ping probe start"); LogFile.printInfo("Ping probe start");
for (MapObject mapObject : Server.mapObject) { for (Map map : Server.maps) {
for (MapObject mapObject : map.getObjects()) {
schedulePing(mapObject); schedulePing(mapObject);
} }
} }
}
private static void schedulePing(MapObject object) { private static void schedulePing(MapObject object) {
TIMER.newTimeout(new TimerTask() { TIMER.newTimeout(new TimerTask() {
@Override @Override

View File

@ -10,6 +10,7 @@ import jnet.lib.LogFile;
import jnet.lib.Message; import jnet.lib.Message;
import jnet.lib.Status; import jnet.lib.Status;
import jnet.lib.object.Event; import jnet.lib.object.Event;
import jnet.lib.object.Map;
import jnet.lib.object.MapObject; import jnet.lib.object.MapObject;
import jnet.server.Database; import jnet.server.Database;
import jnet.server.Server; import jnet.server.Server;
@ -41,7 +42,8 @@ public class Ping extends Thread {
// Naplánování periodického provádění kontrol // Naplánování periodického provádění kontrol
scheduledExecutorService.scheduleAtFixedRate(() -> { scheduledExecutorService.scheduleAtFixedRate(() -> {
for (MapObject mo : Server.mapObject) { for (Map map : Server.maps) {
for (MapObject mo : map.getObjects()) {
if (mo.isActive()) { if (mo.isActive()) {
// Vytvoření úkolu pro pingování každé IP adresy // Vytvoření úkolu pro pingování každé IP adresy
executorService.submit(() -> { executorService.submit(() -> {
@ -59,6 +61,8 @@ public class Ping extends Thread {
} }
} }
}
}, 0, PERIOD, TimeUnit.SECONDS); }, 0, PERIOD, TimeUnit.SECONDS);
} }