


Java Websocket-Entwicklungshandbuch: So erreichen Sie eine Echtzeitkommunikation zwischen Client und Server
Java Websocket-Entwicklungsleitfaden: Für die Implementierung der Echtzeitkommunikation zwischen Client und Server sind spezifische Codebeispiele erforderlich
Mit der kontinuierlichen Entwicklung von Webanwendungen ist Echtzeitkommunikation zu einem wesentlichen Bestandteil des Projekts geworden. Beim herkömmlichen HTTP-Protokoll sendet der Client eine Anfrage an den Server und die Daten können erst nach Erhalt der Antwort abgerufen werden. Dies führt dazu, dass der Client den Server kontinuierlich abfragt, um die neuesten Daten zu erhalten, was zu Leistungs- und Effizienzproblemen führt . WebSocket wurde geboren, um diese Probleme zu lösen.
WebSocket ist ein neues Protokoll in HTML5. Es ermöglicht eine bidirektionale Kommunikation und reduziert den Aufwand für Client-Abfragen. Der Client kann Nachrichten direkt an den Server senden, ohne auf eine Antwort vom Server warten zu müssen. Dadurch wird die Entwicklung von Echtzeitanwendungen einfacher und effizienter.
Java ist eine in der Webanwendungsentwicklung weit verbreitete Sprache und bietet auch eine Möglichkeit, Websocket einfach zu implementieren. Hier erfahren Sie, wie Sie Websockets in Java verwenden.
Der erste Schritt besteht darin, die WebSocket-API von Java zu importieren. Sie können dies über das zentrale Maven-Repository oder über die API im javax.websocket-Paket aus dem Java EE 7-Framework tun.
Hier ist ein Beispiel für die Implementierung von Websocket mithilfe der API im Paket javax.websocket in Java EE 7:
- Erstellen Sie die ServerEndpoint-Annotationsklasse.
Erstellen Sie die Klasse mithilfe der @WebSocket-Annotation, um dem Java-Server mitzuteilen, dass diese Klasse diese Klasse ist kann diese Sitzung als WebSocket-Endpunkt übertragen und einen URI bereitstellen, um diese Adresse dem WebSocket-Endpunkt zuzuordnen.
import javax.websocket.*; import javax.websocket.server.ServerEndpoint; @ServerEndpoint(value = "/websocket") public class WebSocketExample { @OnOpen public void onOpen(){ System.out.println("Connection opened"); } @OnClose public void onClose(){ System.out.println("Connection closed"); } @OnMessage public void onMessage(String message){ System.out.println("Message received: " + message); } }
Verwenden Sie die WebSocketExample-Klasse als Eingang zu unserem WebSocket-Programm. Im obigen Beispiel haben wir die Annotation @ServerEndpoint mit der Endpoint-Klasse verwendet, um die Klasse dem angegebenen URI zuzuordnen.
@OnOpen-, @OnMessage- und @OnClose-Annotationen sind ereignisbasiert und werden verwendet, um Methoden anzugeben, die aufgerufen werden sollen, wenn eine WebSocket-Verbindung geöffnet, eine Nachricht empfangen und die Verbindung geschlossen wird.
Die erhaltene Nachrichtenzeichenfolge wird direkt an die Rückrufmethode onMessage übergeben. Jetzt haben wir Endpunkte auf der WebSocket-Serverseite definiert.
- Client-Beispiel erstellen
public class WebSocketClientExample extends Endpoint { public static CountDownLatch latch; @Override public void onOpen(final Session session, EndpointConfig config) { System.out.println("Connected"); try { session.getBasicRemote().sendText("Hello"); } catch (IOException ex) { } } @Override public void onError(final Session session, Throwable t) { t.printStackTrace(); } }
Unser WebSocket-Client kann javax.websocket.Endpoint als Basisklasse verwenden, die Teil der WebSocket-API ist.
Wir verwenden CountDownLatch, um festzustellen, ob der Client mit dem Server verbunden ist.
In der Rückrufmethode onOpen() haben wir eine Verbindung zum Server hergestellt und die Nachricht gesendet.
Hinweis: In diesem Beispiel wird die Nachricht mithilfe der Methode session.getBasicRemote().sendText(„Hello“); gesendet. In der WebSocket-API gibt es eine weitere Methode zum Senden von Nachrichten, nämlich session.getAsyncRemote().sendText("Hello");. Der Unterschied besteht darin, dass die Methode getBasicRemote() blockierend ist, während die Methode getAsyncRemote() nicht blockierend ist . von. Wenn wir Nachrichten asynchron senden möchten, können wir getAsyncRemote() verwenden.
- Erstellen Sie eine Testklasse und führen Sie die Anwendung aus.
Erstellen Sie eine Testklasse, um den Server und den Client zu bedienen und den normalen Verbindungsaufbau sicherzustellen. Sie müssen die Anwendung starten und die laufende Anwendung mit dem WebSocket-Server interagieren lassen. Wenn alles in Ordnung ist, sollten auf der Konsole des Entwicklungstools einige Meldungen angezeigt werden.
import javax.websocket.*; import java.net.URI; import java.util.concurrent.CountDownLatch; public class AppRunner { public static void main(String[] args) throws Exception { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); CountDownLatch latch = new CountDownLatch(1); container.connectToServer(new WebSocketExample(), new URI("ws://localhost:8080/websocket")); latch.await(); } }
Dieser Testcode startet den WebSocket-Client und versucht, eine Verbindung zum WebSocket-Server auf localhost:8080 herzustellen. Wir werden ein CountDownLatch-Objekt verwenden, um zusammen mit einigen zusätzlichen Informationen auf eine erfolgreiche Verbindung zu warten.
Beim Ausführen des Tests können wir http://localhost:8080/websocket über einen Webbrowser eingeben und die JavaScript-Konsole öffnen, um Nachrichten anzuzeigen und über das JavaScript-WebSocket-Objekt an den WebSocket-Client zu senden.
Zusammenfassung:
Die Verwendung von WebSocket für die Echtzeitkommunikation ist weitaus effizienter als die Verwendung herkömmlicher regelmäßiger HTTP-Abfragen. In der Java-Sprache können Sie die WebSocket-API verwenden, um Websocket zu implementieren. Dieser Artikel enthält ein Java-Beispielprogramm für WebSocket-Server und -Client sowie konkrete Code-Implementierungsbeispiele. Ich hoffe, dass er den Lesern hilfreich sein wird.
Das obige ist der detaillierte Inhalt vonJava Websocket-Entwicklungshandbuch: So erreichen Sie eine Echtzeitkommunikation zwischen Client und Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Java ist plattformunabhängig wegen seiner Designphilosophie "einmal schreiben, überall rennen", die auf Java Virtual Machines (JVMS) und Bytecode beruht. 1) Java -Code wird in Bytecode zusammengestellt, von der JVM interpretiert oder im laufenden Fliegen vor Ort zusammengestellt. 2) Achten Sie auf Bibliotheksabhängigkeiten, Leistungsunterschiede und Umgebungskonfigurationen. 3) Durch die Verwendung von Standardbibliotheken ist plattformübergreifender Tests und das Versionsmanagement die beste Praxis, um die Unabhängigkeit der Plattform zu gewährleisten.

Java'splattformindependenceIsnotsimple; itinvolvescomplexities

Java'splattformindependenceBenefitswebapplicationsby -AchoklingenCodetorunanyStemWithajvm, vereinfachte Deploymentandscaling.InTenables: 1) EasyDeploymentacrossDifferents, 2) näher und 3) konsistent

Thejvmistheruntimeenvironmentforexecutingjavabytecode, Crucialforjavas "Writeonce, Runanywhere" -Capability.itmanagesMeMory, ExecutHutHeadreads, Andensuressecurity, MakingessentialForjavadeVentalStandSeffictoRtoChapla -Entwicklungen

JavaremainsatopchoicefordentwicklersDuetoitsplattformindependenz, objektorientierter, strongyping, automaticMemoryManagement und kompetentverzögert, dass TheseFeaturesMakejavaverseandly, geeigneter Anpassungsanwendungen, verzweifelt, verzweifelt

Java'splattformIndependencemeansDevelopersCanwriteCodeonceAnDrunitonanyDevicewithoutrecompiling.Thissisached ThejavavirtualMachine (JVM), Who IssisByteCodeIntomachine-spezifische STRADIONS, ZUSTANDUNGUNGENSALVATIBILIBILIBLETUNGEN.HOWIFRISIONENS

Um die JVM einzurichten, müssen Sie die folgenden Schritte ausführen: 1) Laden Sie die JDK -Set -Variablen herunter und installieren Sie die Umgebungsvariablen, 3) Überprüfen Sie die Installation, 4) Setzen Sie die IDE, 5) Testen Sie das Läuferprogramm. Bei der Einrichtung eines JVM geht es nicht nur darum, es funktioniert, sondern auch die Optimierung der Speicherzuweisung, der Müllsammlung, der Leistungsstimmung und der Fehlerbehandlung, um einen optimalen Betrieb sicherzustellen.

ToensurejavaplatformIndependenz, folge theSesteps: 1) compileandrunyourApplicationOnmultiPlatformSusendifferentosandjvmversions.2) utilizeci/cdpipelines-usjenkinsorgithubactionsForAutomatedCross-PlatformTesting.3) US-Erklammern


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
