Rumah Java javaTutorial Menggunakan API WebSocket untuk komunikasi masa nyata dalam pembangunan API Java

Menggunakan API WebSocket untuk komunikasi masa nyata dalam pembangunan API Java

Jun 18, 2023 am 09:00 AM
java websocket komunikasi masa nyata

Dengan perkembangan berterusan teknologi Internet, komunikasi masa nyata telah menjadi bahagian yang amat diperlukan dalam banyak sistem aplikasi. Dalam bidang aplikasi Web, teknologi WebSocket telah menjadi salah satu cara utama komunikasi masa nyata. Pada platform Java, API Java juga menyediakan satu set API WebSocket, yang boleh memudahkan pembangunan WebSocket.

Artikel ini akan menumpukan pada cara menggunakan API WebSocket untuk komunikasi masa nyata dalam pembangunan API Java Dalam proses melaksanakan komunikasi WebSocket, kami akan menerangkannya dalam aspek berikut:

    <.> Pengenalan kepada protokol WebSocket
  1. Penggunaan asas API WebSocket
  2. Model benang API WebSocket
  3. Senario penggunaan lanjutan API WebSocket
1. Pengenalan kepada protokol WebSocket

Protokol WebSocket ialah protokol baharu dalam HTML5, yang membolehkan komunikasi dupleks penuh antara penyemak imbas dan pelayan. Sebelum kemunculan protokol WebSocket, komunikasi antara penyemak imbas dan pelayan adalah berdasarkan protokol HTTP Protokol HTTP adalah komunikasi separuh dupleks, iaitu, ia hanya boleh berkomunikasi dalam satu cara, dan pelayan tidak dapat secara aktif. menghantar mesej kepada pelanggan. Protokol WebSocket membenarkan komunikasi dua hala yang benar antara pelayan dan klien.

Ciri penting protokol WebSocket ialah ia berdasarkan protokol TCP. Apabila membuat sambungan WebSocket, pelanggan dan pelayan akan melakukan jabat tangan TCP terlebih dahulu, dan kemudian merangkum data protokol WebSocket dalam bingkai data protokol HTTP untuk mencapai komunikasi dua hala.

2. Penggunaan asas API WebSocket

API WebSocket dalam API Java disertakan dalam pakej javax.websocket, yang menyediakan satu set antara muka API standard WebSocket dan perpustakaan kelas yang berkaitan, yang boleh digunakan Digunakan untuk melaksanakan pelbagai operasi komunikasi WebSocket.

Berikut ialah proses penggunaan asas API WebSocket:

    Mencipta pelayan WebSocket
Anda perlu menentukan titik akhir pelayan yang melaluinya WebSocket sambungan boleh diwujudkan dan menerima dan menghantar mesej. Titik akhir ini perlu mewarisi kelas javax.websocket.Endpoint dan melaksanakan kaedah utama seperti onOpen, onClose, onMessage dan onError.

    Mencipta klien WebSocket
Anda perlu menentukan alamat pelayan WebSocket dan menggunakan objek klien WebSocket untuk menyambung ke pelayan.

    Hantar mesej
Komunikasi WebSocket adalah berdasarkan mesej dan anda boleh menggunakan kaedah hantar yang disediakan oleh antara muka javax.websocket.Session untuk menghantar mesej.

    Terima mesej
Logik penerimaan mesej perlu dilaksanakan dalam kedua-dua pelayan dan klien Anda boleh mengatasi kaedah onMessage untuk melaksanakan logik yang sepadan.

Berikut ialah contoh penggunaan API WebSocket:

Kod sisi pelayan:

@ServerEndpoint("/server")
public class WebSocketServer {

    @OnOpen
    public void onOpen(Session session) {
        System.out.println("WebSocket opened: " + session.getId());
    }

    @OnClose
    public void onClose(Session session) {
        System.out.println("WebSocket closed: " + session.getId());
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("WebSocket received message: " + message);
        try {
            session.getBasicRemote().sendText("Server received message: " + message);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    @OnError
    public void onError(Session session, Throwable throwable) {
        System.out.println("WebSocket error: " + throwable.getMessage());
    }
}
Salin selepas log masuk

Kod sisi pelanggan:

URI uri = new URI("ws://localhost:8080/server");

WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Session session = container.connectToServer(MyClient.class, uri);

session.getBasicRemote().sendText("Hello Server!");
Salin selepas log masuk

Nota: Dalam pelanggan, MyClient .class perlu melaksanakan antara muka javax.websocket.ClientEndpoint dan mengatasi kaedah onMessage.

3. Model benang API WebSocket

Model benang dalam API WebSocket agak istimewa. Komunikasi WebSocket dibina pada bekas Web (seperti Tomcat, Jetty, dll.), jadi model benang dalam API WebSocket juga bergantung pada model benang bekas Web. Memandangkan WebSocket mencipta beberapa kumpulan benang tetap dalam bekas Web, perhatian khusus perlu diberikan kepada isu keselamatan benang.

WebSocket API menyediakan dua anotasi: @OnOpen dan @OnClose, yang boleh digunakan untuk melaksanakan operasi logik yang berkaitan apabila mewujudkan dan memutuskan sambungan WebSocket. Dalam kedua-dua kaedah panggil balik ini, jika operasi pangkalan data atau operasi lain yang memakan masa diperlukan, sambungan hendaklah dilepaskan serta-merta, jika tidak prestasi bekas web mungkin terjejas.

4. Senario penggunaan lanjutan API WebSocket

Selain senario penggunaan asas di atas, API WebSocket juga menyediakan beberapa senario penggunaan lanjutan, seperti menggunakan anotasi untuk menulis titik akhir dan menggunakan pemintas untuk menulis Titik akhir, menulis titik akhir secara pemprograman dan banyak lagi.

Disebabkan keterbatasan ruang, artikel ini tidak dapat memperkenalkan senario penggunaan lanjutan ini secara terperinci Pembaca boleh mengkajinya dalam kombinasi dengan dokumen rasmi.

Ringkasan

Artikel ini terutamanya memperkenalkan cara menggunakan API WebSocket untuk komunikasi masa nyata dalam pembangunan API Java, termasuk pengenalan kepada protokol WebSocket, penggunaan asas API WebSocket dan threading model API WebSocket dan senario penggunaan lanjutan untuk API WebSocket. Dengan mengkaji artikel ini, pembaca boleh mempunyai pemahaman awal tentang idea pengaturcaraan dan kaedah pelaksanaan API WebSocket, dan kemudian lebih baik menangani keperluan pembangunan komunikasi masa nyata.

Atas ialah kandungan terperinci Menggunakan API WebSocket untuk komunikasi masa nyata dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

See all articles