Rumah > Java > javaTutorial > WebSockets dan komunikasi masa nyata dalam pengaturcaraan rangkaian Java

WebSockets dan komunikasi masa nyata dalam pengaturcaraan rangkaian Java

王林
Lepaskan: 2024-05-09 21:42:01
asal
554 orang telah melayarinya

WebSocket ialah protokol komunikasi dua hala yang membenarkan kependaman rendah, sambungan berterusan antara klien web dan pelayan dan digunakan secara meluas untuk membina aplikasi komunikasi masa nyata seperti sembang dan permainan dalam talian. Di Java, anda boleh menggunakan API WebSocket atau perpustakaan pihak ketiga seperti Spring WebSocket. Mewujudkan sambungan menggunakan API WebSocket melibatkan langkah berikut: mewujudkan sambungan HTTP, berjabat tangan dan menaik taraf kepada WebSocket. Kes penggunaan biasa ialah membina aplikasi sembang berbilang pemain, di mana titik akhir pelayan mengendalikan mesej melalui Servlet, dan pelanggan boleh menyambung ke pelayan melalui objek WebSocket JavaScript dan menghantar serta menerima mesej.

Java 网络编程中的 WebSocket 和实时通信

WebSocket dan Komunikasi Masa Nyata dalam Pengaturcaraan Rangkaian Java

WebSocket ialah protokol komunikasi dwiarah, dupleks penuh yang membenarkan kependaman rendah, sambungan berterusan antara pelanggan web dan pelayan. Ia digunakan secara meluas untuk membina aplikasi komunikasi masa nyata seperti sembang, kerjasama masa nyata dan permainan dalam talian.

Pengenalan kepada WebSocket Protocol

WebSocket ialah protokol yang berjalan di atas protokol berasaskan HTTP (biasanya WebSocket). Mewujudkan sambungan WebSocket melibatkan langkah-langkah berikut:

  1. Mewujudkan sambungan HTTP: Pelanggan menghantar permintaan HTTP GET dengan Pengepala Naik Taraf: websocket.
  2. Berjabat tangan: Pelayan mengembalikan respons 101 Switching Protocols, yang mengandungi kunci WebSocket.
  3. Tingkatkan kepada WebSocket: Pelanggan menghantar respons HTTP dengan kunci WebSocket untuk menaik taraf kepada sambungan WebSocket.

Menggunakan WebSocket dalam Java

Untuk menggunakan WebSocket dalam Java, anda boleh memanfaatkan Java WebSocket API atau perpustakaan pihak ketiga seperti Spring WebSocket. Bahagian ini meneroka contoh penggunaan API WebSocket.

// 创建 WebSocket 服务器端点
WebSocketServer ws = new WebSocketServer() {

    @Override
    public void onOpen(WebSocket websocket, ClientEndpointConfig cec) {
        System.out.println("客户端已连接");
    }

    @Override
    public void onMessage(String message, WebSocket websocket) {
        System.out.println("收到客户端消息:" + message);
    }

    @Override
    public void onClose(WebSocket websocket) {
        System.out.println("客户端已断开连接");
    }

    @Override
    public void onError(WebSocket websocket, Throwable cause) {
        System.err.println("WebSocket 发生错误:" + cause.getMessage());
    }
};

ws.start();
Salin selepas log masuk
rrree

Kes Praktikal: Aplikasi Sembang

Menggunakan WebSocket, anda boleh membina aplikasi sembang berbilang orang dengan mudah. Ini contohnya:

// 创建 WebSocket 客户端端点
WebSocketClient wsClient = new WebSocketClient() {

    @Override
    public void onOpen(ServerEndpointConfig sec) {
        System.out.println("连接到服务器");
    }

    @Override
    public void onMessage(String message, Session session) {
        System.out.println("收到服务器消息:" + message);
    }

    @Override
    public void onClose(Session session, CloseReason closeReason) {
        System.out.println("连接已关闭");
    }

    @Override
    public void onError(Session session, WebSocketError error) {
        System.err.println("WebSocket 发生错误:" + error.getMessage());
    }
};

wsClient.open("ws://localhost:8080/websocket");
Salin selepas log masuk

Atas ialah kandungan terperinci WebSockets dan komunikasi masa nyata dalam pengaturcaraan rangkaian Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan