Rumah Java javaTutorial Bagaimana untuk melaksanakan fungsi sembang masa nyata menggunakan Java Websocket?

Bagaimana untuk melaksanakan fungsi sembang masa nyata menggunakan Java Websocket?

Dec 02, 2023 am 09:51 AM
Sembang langsung java websocket

如何使用Java Websocket实现实时聊天功能?

Bagaimana untuk menggunakan Java WebSocket untuk melaksanakan fungsi sembang masa nyata?

Dengan perkembangan Internet, sembang masa nyata telah menjadi ciri penting bagi banyak aplikasi. Java WebSocket ialah teknologi yang digunakan untuk mencapai komunikasi masa nyata. Artikel ini akan memperkenalkan cara menggunakan Java WebSocket untuk melaksanakan fungsi sembang masa nyata dan menyediakan beberapa contoh kod khusus.

1. Apakah Java WebSocket?

Java WebSocket ialah protokol komunikasi masa nyata dalam bahasa Java Ia berdasarkan protokol HTTP, tetapi tidak seperti model respons permintaan HTTP tradisional, Java WebSocket menyediakan keupayaan komunikasi dua hala, membenarkan data masa nyata antara. klien dan pelayan.

2. Kaedah pelaksanaan

Untuk melaksanakan fungsi sembang masa nyata, kami memerlukan sekurang-kurangnya dua peranan: klien dan pelayan. Pelanggan digunakan untuk menghantar dan menerima mesej, dan pelayan bertanggungjawab untuk menerima dan mengedarkan mesej.

  1. Contoh Kod Pelanggan

Mula-mula, mari kita lihat cara melaksanakan kod Java WebSocket pelanggan. Berikut ialah contoh klien mudah:

import javax.websocket.*;
import java.net.URI;

@ClientEndpoint
public class ChatClient {

    private static final String SERVER_URI = "ws://localhost:8080/chat";

    private Session session;

    @OnOpen
    public void onOpen(Session session) {
        this.session = session;
    }

    @OnMessage
    public void onMessage(String message) {
        System.out.println("Received message: " + message);
    }

    public void sendMessage(String message) {
        session.getAsyncRemote().sendText(message);
    }

    public static void main(String[] args) throws Exception {
        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
        URI uri = new URI(SERVER_URI);
        Session session = container.connectToServer(ChatClient.class, uri);
        ChatClient client = new ChatClient();
        client.onOpen(session);

        // 发送消息示例
        client.sendMessage("Hello, World!");

        // 关闭连接
        session.close();
    }
}
Salin selepas log masuk

Dalam kod di atas, anotasi @ClientEndpoint menunjukkan bahawa ini ialah titik akhir klien dan anotasi @OnOpen digunakan untuk nyatakan bahawa selepas sambungan berjaya Fungsi panggil balik, anotasi @OnMessage digunakan untuk menentukan fungsi panggil balik untuk menerima mesej. Fungsi onOpen digunakan untuk menyimpan objek sesi dan fungsi onMessage digunakan untuk memproses mesej yang diterima. Fungsi sendMessage digunakan untuk menghantar mesej. @ClientEndpoint注解表示这是一个客户端端点,@OnOpen注解用于指定连接成功后的回调函数,@OnMessage注解用于指定接收消息的回调函数。onOpen函数用于保存会话对象,onMessage函数用于处理接收到的消息。sendMessage函数用于发送消息。

  1. 服务器端代码示例

接下来,我们看看如何实现服务器端的代码。以下是一个简单的WebSocket服务器示例:

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/chat")
public class ChatServer {

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

    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("Received message: " + message);
        broadcast(message);
    }

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

    @OnError
    public void onError(Throwable t) {
        t.printStackTrace();
    }

    private static void broadcast(String message) {
        for (Session session : Session.getOpenSessions()) {
            session.getAsyncRemote().sendText(message);
        }
    }
}
Salin selepas log masuk

以上代码中,@ServerEndpoint注解用于指定服务器的端点路径,@OnOpen注解用于指定连接打开时的回调函数,@OnMessage注解用于指定接收消息时的回调函数,@OnClose注解用于指定连接关闭时的回调函数,@OnError注解用于指定发生错误时的回调函数。onMessage函数用于处理接收到的消息,broadcast

    Contoh kod sebelah pelayan

    Seterusnya, mari lihat cara melaksanakan kod sebelah pelayan. Berikut ialah contoh pelayan WebSocket mudah:

    rrreee

    Dalam kod di atas, anotasi @ServerEndpoint digunakan untuk menentukan laluan titik akhir pelayan dan @OnOpen anotasi digunakan untuk menentukan apabila sambungan dibuka Fungsi panggil balik, anotasi @OnMessage digunakan untuk menentukan fungsi panggil balik apabila menerima mesej, anotasi @OnClose ialah. digunakan untuk menentukan fungsi panggil balik apabila sambungan ditutup, @OnError digunakan untuk menentukan fungsi panggil balik apabila ralat berlaku. Fungsi <code>onMessage digunakan untuk memproses mesej yang diterima dan fungsi broadcast digunakan untuk menyiarkan mesej yang diterima kepada semua klien yang disambungkan.

    3 Jalankan dan uji

    Untuk menguji fungsi sembang masa nyata yang mudah ini, kita perlu memulakan kod sebelah pelayan dahulu, dan kemudian menjalankan kod sebelah pelanggan. Selepas menjalankan kod klien, pelanggan akan menyambung ke pelayan dan menghantar mesej. Selepas pelayan menerima mesej, ia akan menyiarkannya kepada semua pelanggan yang disambungkan, dan pelanggan akan mencetaknya selepas menerima mesej.

    🎜4. Ringkasan🎜🎜Sangat mudah untuk melaksanakan fungsi sembang masa nyata menggunakan Java WebSocket. Kami hanya perlu melaksanakan klien dan pelayan dan mengendalikan acara seperti pembukaan sambungan, penerimaan mesej, penutupan sambungan dan pengendalian ralat masing-masing. Melalui Java WebSocket, kami boleh melaksanakan fungsi komunikasi masa nyata dengan mudah dan menjadikan aplikasi kami lebih interaktif. 🎜🎜Di atas ialah pengenalan terperinci dan contoh kod menggunakan Java WebSocket untuk melaksanakan fungsi sembang masa nyata. Harap ini membantu! 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi sembang masa nyata menggunakan Java Websocket?. 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

Tag artikel 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)

Cara membina apl sembang masa nyata dengan React dan WebSocket Cara membina apl sembang masa nyata dengan React dan WebSocket Sep 26, 2023 pm 07:46 PM

Cara membina apl sembang masa nyata dengan React dan WebSocket

Bagaimana untuk menggunakan Java Websocket untuk merealisasikan paparan sebut harga saham masa nyata? Bagaimana untuk menggunakan Java Websocket untuk merealisasikan paparan sebut harga saham masa nyata? Dec 02, 2023 am 08:58 AM

Bagaimana untuk menggunakan Java Websocket untuk merealisasikan paparan sebut harga saham masa nyata?

Cara menambah fungsi sembang pengguna masa nyata ke tapak web anda menggunakan PHP dan MQTT Cara menambah fungsi sembang pengguna masa nyata ke tapak web anda menggunakan PHP dan MQTT Jul 08, 2023 pm 07:46 PM

Cara menambah fungsi sembang pengguna masa nyata ke tapak web anda menggunakan PHP dan MQTT

Sembang dalam talian masa nyata menggunakan pekerja dan teknologi HTML5 WebSocket Sembang dalam talian masa nyata menggunakan pekerja dan teknologi HTML5 WebSocket Sep 09, 2023 am 11:00 AM

Sembang dalam talian masa nyata menggunakan pekerja dan teknologi HTML5 WebSocket

Bagaimana untuk melaksanakan fungsi sembang masa nyata dalam PHP Bagaimana untuk melaksanakan fungsi sembang masa nyata dalam PHP Sep 24, 2023 pm 04:49 PM

Bagaimana untuk melaksanakan fungsi sembang masa nyata dalam PHP

Bagaimana untuk menggunakan Java Websocket untuk melaksanakan panggilan audio dan video dalam talian? Bagaimana untuk menggunakan Java Websocket untuk melaksanakan panggilan audio dan video dalam talian? Dec 02, 2023 am 09:44 AM

Bagaimana untuk menggunakan Java Websocket untuk melaksanakan panggilan audio dan video dalam talian?

Bina aplikasi sembang masa nyata menggunakan PHP dan MQTT Bina aplikasi sembang masa nyata menggunakan PHP dan MQTT Jul 08, 2023 pm 03:18 PM

Bina aplikasi sembang masa nyata menggunakan PHP dan MQTT

Bagaimana untuk menggunakan Java Websocket untuk melaksanakan fungsi ramalan cuaca masa nyata? Bagaimana untuk menggunakan Java Websocket untuk melaksanakan fungsi ramalan cuaca masa nyata? Dec 17, 2023 pm 05:10 PM

Bagaimana untuk menggunakan Java Websocket untuk melaksanakan fungsi ramalan cuaca masa nyata?

See all articles