Ich werde etwas implementieren, das der Facebook-Benachrichtigung und dieser Website ähnelt (Benachrichtigung von StackOverflow, die uns benachrichtigt, wenn jemand einen Kommentar / eine Antwort usw. für unsere Frage schreibt). Bitte beachten Sie, dass Nutzer meine Anwendung als Website und nicht als mobile Anwendung verwenden werden.
Ich stieß auf folgende Antwort , die die Ergebnisse abrufen, aber Ich muss die Ergebnisse nicht abrufen.
Basierend auf Vorschlägen habe ich eine einfache Methode in meiner Entity-Klasse erstellt und die @PostPersist hinzugefügt, aber es hat nicht so funktioniert auf Basis von diese Antwort Ich habe die Datei persistence.xml hinzugefügt, um die Listener zu definieren, aber nach session.save (user) wird die Aftersave-Methode nicht ausgelöst.
Benutzer.java
%Vor%persistence.xml
%Vor%pom.xml
%Vor%Klingt wie eine Aufgabe für WebSockets . Es ist Teil von Java EE 7, also sollte der Glassfish einer der ersten AS sein, die ihn unterstützen.
Zum Abfangen des DB-Zugriffs können Sie @PostUpdate
und @PostPersist
verwenden. Hier finden Sie eine Frage .
Es gibt viele Möglichkeiten, den so genannten Server Push auszuführen, um die verbundenen Clients zu benachrichtigen:
EDIT: In der Java-Welt gibt es einige Frameworks, in denen Server Push (Reverse Ajax) sofort implementiert wird. Wenn Sie mit GWT vertraut sind, würde ich Errai vorschlagen . Eine andere Alternative ist die Atmosphre . Der Nachteil des Atmospere ist die Tatsache, dass es einen eigenständigen laufenden Prozess neben Ihrem normalen Anwendungsserver mit Ihrer Web-App erfordert. Ich habe vor einem Jahr damit gespielt, das könnte sich seitdem geändert haben.
Im Allgemeinen ist es schwierig, Ihnen einen konkreten Code zur Verfügung zu stellen, da dies von dem Framework abhängt, das Sie wählen werden. Ich kenne Errai , also hier ein Beispiel:
Serverseite:
%Vor%Kundenseite:
%Vor%Andere Vorteile der Verwendung des Errai sind die CDI auf dem Server und auf dem Client out-of-the-box, eine andere Sache, die schön ist, ist die Verwendung der Web-Sockets unter den Abdeckungen es wird unterstützt und fällt auf andere Lösungen zurück.
Was auch immer Sie auswählen, es sollte zu Ihrer vorhandenen Infrastruktur und zu Ihrem clientseitigen UI-Framework passen.
mqtt kann für Server Pushing und Nachrichtenübertragung verwendet werden.
Es gibt weitere Detailinformationen in Ссылка .
======================================
Aktualisiert: 11. Juli 2013
Mqtt ist ein Publish / Subscribe-Protokoll, das extrem einfach und leicht ist. Wenn der Server ein Publisher und ein Client-Browser ist, die das Thema abonnieren, auf dem der Server veröffentlicht, kann der Server die Nachricht direkt an den Client senden.
Eine nützliche Ressource:
Mosquitto ist ein Open-Source-MQtt-Server. Einfach zu installieren und zu konfigurieren.
mqtt-client ist ein bewährter, leistungsstarker Java-mqtt-Client.
Verwenden Sie Node JS und socket.io
Diese Technologie wählt basierend auf dem vom Client verwendeten Browser die beste Transportmethode aus.
Für die neuesten Browser verwendet es Web-Sockets und für andere wird es elegant zu Flash Socket oder Long Pooling degradiert. Weitere Informationen finden Sie hier
Was Sie tun müssen, ist einen Server mit diesen Technologien einzurichten. Der Server würde an einem bestimmten Port laufen. Alle Clients würden diesen Port abhören und der Server wäre in der Lage, über diesen Port Daten an den Client zu senden.
Komet auch bekannt als Reverse Ajax , ist ein Webanwendungsmodell, bei dem eine lange gehaltene HTTP-Anfrage es einem Webserver ermöglicht, zu pushen Daten an einen Browser senden, ohne dass der Browser dies explizit anfordert.
Comet (ALA langlebiges HTTP, Server-Push) ermöglicht es dem Server, die Informationsanforderung des Browsers sehr langsam zu beantworten und weiterhin nach einem vom Server vorgegebenen Zeitplan zu antworten. Weitere Informationen zu Comet finden Sie unter:
Alex Russells Originalbeitrag prägt den Begriff
Comet Daily , ein Blog mit regelmäßigen Beiträgen zum Thema
DWR ist eine Java-Bibliothek, mit der Java auf dem Server und JavaScript in einem Browser interagiert und aktiviert werden kann Rufen Sie sich so einfach wie möglich an. Mit Reverse Ajax ermöglicht DWR, dass Java-Code, der auf einem Server ausgeführt wird, Client-seitige APIs zum Veröffentlichen von Aktualisierungen in beliebigen Browsergruppen verwendet. Dies ermöglicht Interaktion 2 Möglichkeiten - Browser-Aufruf Server und Server Aufruf Browser. DWR unterstützt Comet, Polling und Piggyback (das Senden von Daten mit normalen Anforderungen) als Möglichkeiten zum Veröffentlichen in Browsern.
DWR bietet Integration mit Spring, Struts, Guice, Hibernate und anderen. Sie können mehr von hier lesen.
Andere Comet- und Reverse-AJAX-Frameworks:
Überprüfen Sie alle 30 Sekunden oder nach Bedarf auf Updates vom Server.
%Vor%Tags und Links mysql hibernate java-ee notifications struts2