Rumah > Java > javaTutorial > teks badan

Pembangunan Java: Cara menggunakan WebSocket untuk komunikasi masa nyata

WBOY
Lepaskan: 2023-09-21 13:16:55
asal
1042 orang telah melayarinya

Pembangunan Java: Cara menggunakan WebSocket untuk komunikasi masa nyata

Pembangunan Java: Cara menggunakan WebSocket untuk komunikasi masa nyata

WebSocket ialah protokol untuk komunikasi dua hala dalam aplikasi web. Ia membolehkan pelayan menghantar mesej secara aktif kepada pelanggan untuk mencapai fungsi komunikasi masa nyata. Dalam pembangunan Java, kita boleh menggunakan beberapa perpustakaan sumber terbuka untuk melaksanakan komunikasi WebSocket.

Artikel ini akan memperkenalkan cara menggunakan perpustakaan javax.websocket dalam Java untuk melaksanakan komunikasi WebSocket dan menyediakan contoh kod khusus.

Langkah 1: Perkenalkan perpustakaan bergantung
Pertama, kita perlu memperkenalkan kebergantungan pada perpustakaan javax.websocket dan javax.json dalam projek. Anda boleh menggunakan Maven untuk mengurus kebergantungan, tambah kod berikut pada klien WebSocket.

Contoh kod sisi pelayan:

<dependencies>
  <dependency>
    <groupId>javax.websocket</groupId>
    <artifactId>javax.websocket-api</artifactId>
    <version>1.1</version>
  </dependency>
  <dependency>
    <groupId>org.glassfish.tyrus</groupId>
    <artifactId>tyrus-container-grizzly-client</artifactId>
    <version>1.13</version>
  </dependency>
  <dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
  </dependency>
  <dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
  </dependency>
</dependencies>
Salin selepas log masuk

Contoh kod sisi pelanggan:

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

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

    @OnOpen
    public void onOpen(Session session) {
        // 当有客户端连接时触发
        System.out.println("WebSocket连接已建立");
    }

    @OnMessage
    public String onMessage(String message, Session session) {
        // 当收到客户端消息时触发,并向客户端发送消息
        System.out.println("收到客户端消息:" + message);
        return "服务器返回消息:" + message;
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        // 当客户端断开连接时触发
        System.out.println("WebSocket连接已关闭");
    }

    @OnError
    public void onError(Throwable error) {
        // 当发生错误时触发
        System.out.println("WebSocket错误:" + error.getMessage());
    }
}
Salin selepas log masuk

Langkah 3: Mulakan pelayan dan pelanggan ##🎜🎜 Akhir sekali, Kita perlu memulakan pelayan dan klien dalam kelas Utama.

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

@ClientEndpoint
public class WebSocketClient {

    private Session session;
    private CountDownLatch latch;

    public WebSocketClient() {
        latch = new CountDownLatch(1);
    }

    @OnOpen
    public void onOpen(Session session) {
        // 当连接建立时触发
        System.out.println("WebSocket连接已建立");
        this.session = session;
        latch.countDown();
    }

    public void sendMessage(String message) {
        // 向服务器发送消息
        session.getAsyncRemote().sendText(message);
    }

    @OnMessage
    public void onMessage(String message) {
        // 当收到服务器消息时触发
        System.out.println("收到服务器消息:" + message);
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        // 当服务器断开连接时触发
        System.out.println("WebSocket连接已关闭");
    }
    
    @OnError
    public void onError(Throwable error) {
        // 当发生错误时触发
        System.out.println("WebSocket错误:" + error.getMessage());
    }
    
    public void close() throws InterruptedException {
        // 关闭WebSocket连接
        session.close();
        latch.await();
    }
}
Salin selepas log masuk

Di atas ialah kod sampel untuk melaksanakan komunikasi WebSocket menggunakan perpustakaan Java dan javax.websocket. Melalui WebSocket, kami boleh memindahkan mesej dengan cepat antara pelayan dan pelanggan untuk mencapai komunikasi masa nyata. WebSocket boleh digunakan untuk menolak data kepada pelanggan dalam masa nyata, yang sangat berguna dalam senario aplikasi seperti sembang masa nyata dan paparan data masa nyata.

Atas ialah kandungan terperinci Pembangunan Java: Cara menggunakan WebSocket untuk komunikasi masa nyata. 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