Heim Java javaLernprogramm So implementieren Sie Echtzeit-Datenübertragung mit Java und WebSocket

So implementieren Sie Echtzeit-Datenübertragung mit Java und WebSocket

Dec 18, 2023 am 11:18 AM
java websocket 实时数据传输

So implementieren Sie Echtzeit-Datenübertragung mit Java und WebSocket

In der modernen Anwendungsentwicklung ist die Echtzeit-Datenübertragung zu einem sehr wichtigen Thema geworden. Echtzeit-Datenübertragung bedeutet, dass Daten den Besuchern sofort zur Verfügung gestellt werden, wenn sie sich ändern. Dieses Echtzeit-Feedback kann in einer Vielzahl von Anwendungen genutzt werden, beispielsweise bei Spielen, sozialen Medien und Finanztransaktionen.

In diesem Artikel untersuchen wir Möglichkeiten zur Echtzeit-Datenübertragung mithilfe von Java und WebSocket. Wir erklären, was WebSocket ist und stellen ein Java-basiertes WebSocket-Beispiel bereit, das für die Echtzeit-Datenübertragung verwendet werden kann.

Was ist WebSocket? WebSocket ist ein neues Netzwerkprotokoll, das eine dauerhafte Verbindung zwischen einem Client und einem Server ermöglicht, um bei Datenänderungen in Echtzeit zu kommunizieren. Im Gegensatz zu herkömmlichen HTTP-Anfragen bleibt eine WebSocket-Verbindung immer geöffnet, sodass der Server jederzeit Daten an den Client und der Client Daten an den Server senden kann. WebSocket wird häufig für die Echtzeitkommunikation verwendet, z. B. für Chat-Anwendungen, Echtzeitspiele usw.

So funktioniert WebSocket

Wenn ein Client eine Verbindung zu einem WebSocket-Server herstellen möchte, sendet er eine WebSocket-Handshake-Anfrage. Bei dieser Handshake-Anfrage handelt es sich um eine HTTP-Protokollanfrage, die einige spezifische Header-Informationen enthält. Wenn der Server diese Handshake-Anfrage akzeptiert, gibt er eine WebSocket-Verbindungsbestätigung zurück, die angibt, dass die WebSocket-Verbindung hergestellt wurde.

Sobald eine WebSocket-Verbindung hergestellt ist, kann die Kommunikation zwischen Client und Server fortgesetzt werden, bis eine der Parteien beschließt, die Verbindung zu schließen. Der Client kann jederzeit Nachrichten an den Server senden, und der Server kann jederzeit Nachrichten an den Client senden. Diese Echtzeitkommunikation macht WebSocket ideal für Echtzeit-Datenübertragungsanwendungen.

WebSocket implementieren

In Java erfordert die Implementierung von WebSocket die Verwendung einer Java-Bibliothek namens „javax.websocket“. Diese Bibliothek stellt Klassen und Schnittstellen zur Implementierung von WebSocket-Verbindungen und Datenübertragung bereit.

Das Folgende ist ein einfaches Java WebSocket-Implementierungsbeispiel:

1. Erstellen Sie einen WebSocket-Endpunkt (EndPoint)

@ServerEndpoint(value = "/wsendpoint")
public class WSEndpoint {

    @OnOpen
    public void onOpen(Session session) {
        // 处理连接建立
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        // 处理连接断开
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        // 处理消息
    }

    @OnError
    public void onError(Throwable error, Session session) {
        // 处理错误
    }
}
Nach dem Login kopieren

2. Konfigurieren Sie den Endpunkt in web.xml

<websocket-endpoint>
    <endpoint-class>com.example.WSEndpoint</endpoint-class>
</websocket-endpoint>
Nach dem Login kopieren

In diesem Beispiel haben wir eine Datei mit dem Namen „WSEndpoint“ erstellt. WebSocket-Endpunkt. Dieser Endpunkt verwendet 4 Annotationen, nämlich @ServerEndpoint, @OnOpen, @OnClose, @OnMessage und @OnError. Diese Anmerkungen werden verwendet, um verschiedene Zustände von WebSocket-Verbindungen zu verarbeiten, einschließlich Verbindungsaufbau, Verbindungstrennung, Nachrichtenempfang und Fehlerbehandlung.

Echtzeit-Datenübertragung

Nachdem Sie den WebSocket-Endpunkt erstellt haben, können Sie mit der Implementierung der Echtzeit-Datenübertragung beginnen. In diesem Beispiel senden wir eine Nachricht namens „currentDate“ an den Client, die die aktuelle Uhrzeit des Servers enthält. Diese Nachricht wird jede Sekunde gesendet, um Aktualisierungen in Echtzeit bereitzustellen.

Hier ist der JavaScript-Code, der die „currentDate“-Nachricht sendet:

var ws = new WebSocket("ws://localhost:8080/wsendpoint");

ws.onopen = function() {
    console.log("Connection opened ...");
    setInterval(function() {
        ws.send("currentDate");
    }, 1000);
};

ws.onmessage = function(e) {
    console.log("Received message: " + e.data);
};
Nach dem Login kopieren

Dieser JavaScript-Code stellt eine WebSocket-Verbindung her und sendet jede Sekunde eine „currentDate“-Nachricht. Wenn der Server eine Nachricht sendet, wird die Rückruffunktion „onmessage“ verwendet, um die Nachricht zu verarbeiten.

Hier ist der serverseitige Java-Code zum Senden der „currentDate“-Nachricht:

@ServerEndpoint(value = "/wsendpoint")
public class WSEndpoint {

    @OnOpen
    public void onOpen(Session session) {
        System.out.println("Connection opened ...");
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                try {
                    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    Date date = new Date();
                    session.getBasicRemote().sendText(dateFormat.format(date));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }, 0, 1000);
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        System.out.println("Connection closed ...");
    }

    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        if (message.equals("currentDate")) {
            DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            Date date = new Date();
            session.getBasicRemote().sendText(dateFormat.format(date));
        }
    }

    @OnError
    public void onError(Throwable error, Session session) {
        error.printStackTrace();
    }
}
Nach dem Login kopieren

Dieser Java-Code verwendet eine Timer-Klasse, die jede Sekunde nach dem Herstellen der WebSocket-Verbindung die aktuelle Uhrzeit an den Client sendet. Wenn der Client eine „currentDate“-Nachricht sendet, sendet der Server die aktuelle Uhrzeit an den Client zurück.

Fazit

In diesem Artikel haben wir untersucht, wie man mithilfe von Java und WebSocket eine Echtzeit-Datenübertragung erreicht. Wir stellten die Funktionsweise von WebSocket vor und stellten ein Beispiel zur Verfügung, um zu demonstrieren, wie man Echtzeit-Datenübertragung mit Java implementiert. Wir hoffen, dass dieser Artikel Ihnen geholfen hat, die WebSocket-Implementierung zu verstehen und einige Referenzen für Ihre Echtzeitanwendungen bereitzustellen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Echtzeit-Datenübertragung mit Java und WebSocket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

See all articles