Cara menggunakan JavaFX dan WebSockets dalam Java 9 untuk melaksanakan antara muka grafik untuk komunikasi masa nyata
Pengenalan:
Dalam era Internet hari ini, komunikasi masa nyata adalah salah satu fungsi yang sangat penting. Contohnya, kemas kini masa nyata keadaan pasaran saham, sembang masa nyata, dsb. Artikel ini akan memperkenalkan cara menggunakan JavaFX dan WebSockets dalam Java 9 untuk melaksanakan antara muka grafik untuk komunikasi masa nyata.
Bahagian Pertama: Pengenalan kepada JavaFX
JavaFX ialah perpustakaan Java untuk membina aplikasi pelanggan yang kaya. Ia menyediakan antara muka grafik yang berkuasa untuk mencipta pelbagai kesan visual dengan mudah.
Bahagian 2: Pengenalan kepada WebSockets
WebSockets ialah teknologi yang digunakan untuk komunikasi dua hala masa nyata antara pelanggan dan pelayan. Ia membolehkan pelayan menghantar mesej secara proaktif kepada pelanggan dan menyediakan protokol mudah untuk mengendalikan komunikasi masa nyata.
Bahagian 3: Gabungan JavaFX dan WebSockets
Sekarang mari kita lihat cara menggabungkan JavaFX dan WebSockets untuk mencapai antara muka grafik untuk komunikasi masa nyata. Pertama, kita perlu mencipta aplikasi JavaFX dan menambah perpustakaan WebSockets kepada kebergantungan projek.
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; import javax.websocket.ClientEndpoint; import javax.websocket.ContainerProvider; import javax.websocket.OnMessage; import javax.websocket.Session; import javax.websocket.WebSocketContainer; @ClientEndpoint public class RealTimeApplication extends Application { private Session session; private TextArea messageArea; public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Real Time Application"); VBox vbox = new VBox(); messageArea = new TextArea(); messageArea.setEditable(false); TextField inputField = new TextField(); inputField.setOnAction(event -> { String message = inputField.getText(); session.getAsyncRemote().sendText(message); inputField.setText(""); }); vbox.getChildren().addAll(messageArea, inputField); primaryStage.setScene(new Scene(vbox, 400, 300)); primaryStage.show(); connect(); } @Override public void stop() { try { session.close(); } catch (Exception e) { e.printStackTrace(); } } @OnMessage public void onMessage(String message) { messageArea.appendText(message + " "); } private void connect() { try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); session = container.connectToServer(this, new URI("ws://localhost:8080/ws")); } catch (Exception e) { e.printStackTrace(); } } }
Dalam kod di atas, kami mencipta aplikasi JavaFX yang dipanggil "RealTimeApplication" dan menambah TextArea untuk memaparkan mesej dan TextField untuk memasukkan mesej. Apabila pengguna menekan kekunci Enter dalam TextField, kami menggunakan sesi WebSockets untuk menghantar mesej kepada pelayan. Apabila mesej diterima daripada pelayan, kami akan memaparkannya dalam TextArea.
Bahagian 4: Persediaan Sisi Pelayan
Seterusnya, kita perlu menyediakan bahagian pelayan untuk mengendalikan mesej daripada pelanggan dan menyiarkannya kepada semua pelanggan yang berkaitan. Di sini, kami menggunakan Spring Boot untuk mencipta pelayan WebSockets yang mudah.
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; import org.springframework.web.socket.config.annotation.StompEndpointRegistry; import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer; import org.springframework.web.socket.config.annotation.WebSocketTransportRegistration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Configuration @EnableWebSocketMessageBroker public static class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureWebSocketTransport(WebSocketTransportRegistration registration) { registration.setMessageSizeLimit(1024000); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").withSockJS(); } } @ServerEndpoint(value = "/ws") public static class WebSocketServer { @OnMessage public void onMessage(Session session, String message) throws IOException, EncodeException { for (Session client : session.getOpenSessions()) { client.getBasicRemote().sendText(message); } } } }
Dalam kod di atas, kami mencipta pelayan WebSocket bernama "WebSocketServer" dan mengikatnya pada titik akhir "/ws" menggunakan anotasi @ServerEndpoint
. Apabila mesej diterima daripada pelanggan, pelayan menyiarkannya kepada semua pelanggan yang bersambung.
Kesimpulan:
Dengan menggabungkan JavaFX dan WebSockets, kami boleh dengan mudah melaksanakan antara muka grafik untuk komunikasi masa nyata. Sama ada anda sedang mencari kemas kini pasaran saham masa nyata atau sembang langsung, teknologi ini boleh menjadi sangat berguna. Saya harap artikel ini telah membantu anda dalam melaksanakan antara muka grafik untuk komunikasi masa nyata menggunakan JavaFX dan WebSockets dalam Java 9.
Pautan rujukan:
Atas ialah kandungan terperinci Cara menggunakan JavaFX dan WebSockets dalam Java 9 untuk melaksanakan antara muka grafik untuk komunikasi masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!