Rumah  >  Artikel  >  Java  >  Cara menggunakan Java dan WebSocket untuk melaksanakan penjadualan tugas masa nyata

Cara menggunakan Java dan WebSocket untuk melaksanakan penjadualan tugas masa nyata

王林
王林asal
2023-12-17 16:01:08903semak imbas

Cara menggunakan Java dan WebSocket untuk melaksanakan penjadualan tugas masa nyata

Cara melaksanakan penjadualan tugas masa nyata menggunakan Java dan WebSocket

Ikhtisar:
Penjadualan tugas masa nyata adalah keperluan biasa, terutamanya dalam pembangunan aplikasi rangkaian. Menggunakan teknologi Java dan WebSocket, kami boleh melaksanakan penjadualan tugas masa nyata dengan mudah dan memberitahu pelanggan tentang perubahan dalam status tugas dalam masa nyata. Artikel ini akan memperkenalkan cara menggunakan Java dan WebSocket untuk melaksanakan penjadualan tugas masa nyata dan menyediakan contoh kod khusus.

1. Bina pelayan WebSocket
Untuk mencapai penjadualan tugas masa nyata, mula-mula kita perlu membina pelayan WebSocket. Terdapat banyak perpustakaan WebSocket sumber terbuka di Java untuk dipilih, seperti sokongan Jetty dan WebSocket Tomcat. Di sini kami menggunakan Jeti sebagai contoh untuk menerangkan.

Langkah-langkahnya adalah seperti berikut:

  1. Buat projek Maven dan tambahkan kebergantungan Jetty dan WebSocket.
  2. Tulis kelas pelayan WebSocket, warisi daripada kelas WebSocketHandler Jetty dan ganti kaedah onWebSocketConnect, onWebSocketClose, onWebSocketText dan lain-lain.

Kod sampel adalah seperti berikut:

public class MyWebSocketHandler extends WebSocketHandler {
    private Session session; // 客户端会话
    
    @Override
    public void onWebSocketConnect(Session session) {
        this.session = session;
        System.out.println("Client connected: " + session.getRemoteAddress());
    }

    @Override
    public void onWebSocketClose(int statusCode, String reason) {
        System.out.println("Client disconnected: " + session.getRemoteAddress());
    }

    @Override
    public void onWebSocketText(String message) {
        System.out.println("Received message from client: " + message);
        // 根据客户端的消息进行相应的任务调度,并将结果发送给客户端
        // ... (具体任务调度逻辑)
        session.getRemote().sendString("Task result: " + result);
    }
}
  1. Buat dan mulakan pelayan WebSocket.

Kod sampel adalah seperti berikut:

public class WebSocketServer {
    public static void main(String[] args) {
        // 创建WebSocket服务器
        Server server = new Server(8888);
        
        // 设置WebSocket处理器
        MyWebSocketHandler webSocketHandler = new MyWebSocketHandler();
        server.setHandler(webSocketHandler);
        
        try {
            // 启动服务器
            server.start();
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. Sambungan pelanggan dan penjadualan tugas
Dalam proses melaksanakan penjadualan tugas pada klien, kita perlu mewujudkan sambungan WebSocket dengan pelayan terlebih dahulu, kemudian menghantar maklumat tugas kepada pelanggan. pelayan, dan menerima tugas yang dikembalikan oleh pelayan Hasil pelaksanaan.

Langkah-langkahnya adalah seperti berikut:

  1. Buat objek WebSocket pada bahagian klien dan wujudkan sambungan dengan pelayan.

Kod contoh adalah seperti berikut:

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;

public class MyWebSocketClient extends WebSocketClient {
    public MyWebSocketClient(URI serverUri) {
        super(serverUri);
    }

    @Override
    public void onOpen(ServerHandshake handshake) {
        System.out.println("Connected to server.");
    }

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

    @Override
    public void onClose(int code, String reason, boolean remote) {
        System.out.println("Disconnected from server.");
    }

    @Override
    public void onError(Exception ex) {
        ex.printStackTrace();
    }
    
    public static void main(String[] args) {
        try {
            // 创建WebSocket客户端,并连接服务器
            MyWebSocketClient client = new MyWebSocketClient(new URI("ws://localhost:8888"));
            client.connect();

            // 发送任务信息给服务器
            String task = "Task request...";
            client.send(task);

            // 等待任务执行结果
            Thread.sleep(5000);

            // 断开与服务器的连接
            client.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. Hantar maklumat tugasan ke pelayan di sebelah klien dan tunggu keputusan pelaksanaan tugas dikembalikan oleh pelayan.

Kod sampel adalah seperti yang ditunjukkan dalam kod sampel dalam MyWebSocketClient di atas.

Ringkasan:
Sangat mudah untuk melaksanakan penjadualan tugas masa nyata menggunakan Java dan WebSocket. Dengan membina pelayan WebSocket, menghantar mesej ke pelayan, dan menerima mesej yang dikembalikan oleh pelayan, kami boleh melaksanakan penjadualan tugas masa nyata dengan mudah. Saya harap pengenalan dalam artikel ini dapat membantu anda.

Atas ialah kandungan terperinci Cara menggunakan Java dan WebSocket untuk melaksanakan penjadualan tugas masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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