Sziasztok!
Nagy fába vágtam a fejszémet, munkahelyemre szeretnék írni egy termelés támogató programot melyben szerepel egy üzenetküldős rész, melyben lehet személyeknek ill csoportoknak üzenni. Tartalmaz majd egy QS adatbázist melynél minden általunk gyártott termékhez van csomagolási és ellenőrzési utasítás, valamint házirend lista, pl a szünetszabályozás leírása stb... Tehát egy kommunikációs rész és egy tudástár lenne.
2 évig tanítottak nekem java-t OKJ-n, de mivel esti tagozatos voltam nem sok mindenre volt időnk.
A kliens-szerver kapcsolatot létre tudom hozni, de a jelenlegi problémám az az, hogyha a szerver küld üzenetet a kliensnek akkor a kliens hogy reagálhatna automatikusan? Pl az egyik alkalmazott küld egy üzenetet a másiknak, akkor a másik kliensében kéne egy figyelmeztetés, hogy üzenet érkezett anélkül hogy a másik bármilyen beavatkozást hajtana végre a programban.
Továbbá szeretnék majd sql adatbázist is használni. És minden tudástárban lévő változtatásról értesíteni az összes klienst (azt is ami épp nem kapcsolódik) természetesen valós időben. Nem pedig akkor amikor a kliens felhasználói utasításra kérdezi le, hogy történt e változás.
Remélem tudtok nekem segíteni ebben a projektben minden ötletet és javaslatot szívesen fogadok
13 Comments
Viczián István
Milyen szerver és milyen kliens? Java szerver és Java Swing kliens? Vagy webes környezetről van szó? És milyen protokollon kommunikálnak? TCP, web service, http, rest, RMI?
ShadowTm
TCP kommunikáció van. Nem webes környezet.
Auth Gábor
A szerver-kliens TCP kapcsolatról van egy jó cikk, érdemes elolvasni: Szerver-kliens programok
Ha a szerver küld valamit a kliensnek, akkor a kliens dolga, hogy figyeljen és reagáljon... nem értem a kérdést, hogy mi okoz gondot: az üzenetküldés, a kliens oldalon az üzenet olvasása vagy az, hogy egy ablak ugorjon fel?
Ha ennyire üzenet vezérelt a rendszer, akkor érdemes lenne egy XMPP protokollra ráültetni, akkor nem kell megírni a kommunikációs részt, csak a lényeges dolgokra kell koncentrálni.
ShadowTm
Hmm... XMPP? Az mi? Hol van róla leírás?
Igen az lenne a lényeg, hogyha érkezik egy üzenet a kliensnek akkor egyből feldolgozásra kerüljön.
Auth Gábor
Az XMPP egy szabványos üzenetkezelő protokoll (eXtensible Messaging and Presence Protocol), bővebben: http://xmpp.org/
Az XMPP erre lehetőséget ad, ezen alapul a Jabber, a GTalk és még sok már IM protokoll. Ha szabványos megoldást szeretnél, akkor ezt ajánlom.
Viczián István
Szerintem se TCP-zz, az nagyon low level. Az RMI-vel nekem jó tapasztalataim vannak, és visszafele is lehet hívni: http://docs.oracle.com/cd/E13211_01/wle/rmi/callbak.htm
ShadowTm
Köszönöm szépen! Áttanulmányozom őket
Kotvics-Varga Lajos
Ha TCP akkor Netty https://netty.io/
Egyszerű, gyors (2000+ kliens nem jelentett problémát), ha pedig kell van HTML protocol, SSL támogatása.
ShadowTm
Elkezdtem olvasni az RMI-ről és elég ígéretesnek tűnik!
Auth Gábor
Ha már RMI, akkor az aszinkron EJB is szóba jöhet... mondjuk ahhoz kell egy Java EE 6 konténer, de szerintem a TomEE is tudja már...
ShadowTm
Újabb láma kérdésem lenne
hogy tudok kapcsolódni a mysql-hez? (xammp van fent)
szedtem le valami mysql connectort de mit csináljak vele? :S
Auth Gábor
Cikkek szekcióban: Adatbázis
ShadowTm
köszönöm!
szerk.: sikerült létrehoznom a kapcsolat xD