Bermula dengan Pembangunan Java Websocket: Cara Melaksanakan Komunikasi Dua Hala Dengan Pantas
Pengenalan:
Dengan pembangunan berterusan teknologi Internet, mencapai komunikasi dua hala masa nyata menjadi semakin penting untuk aplikasi web moden . Sebagai protokol komunikasi berdasarkan HTML5, Websocket menyediakan kami cara untuk melaksanakan komunikasi dua hala dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Java untuk pembangunan Websocket dan menyediakan contoh kod khusus.
1. Apakah itu Websocket ialah protokol untuk komunikasi dua hala antara pelanggan dan pelayan. Ia membolehkan pelayan untuk secara aktif menolak data kepada pelanggan melalui saluran komunikasi yang mengekalkan sambungan jangka panjang, dan pelanggan juga boleh menghantar mesej kepada pelayan. Berbanding dengan protokol HTTP tradisional, Websocket boleh mencapai kependaman yang lebih rendah dan prestasi masa nyata yang lebih tinggi.
Di Java, kami boleh menggunakan beberapa rangka kerja matang untuk melaksanakan pembangunan Websocket dengan cepat. Berikut ialah pengenalan menggunakan rangka kerja Tyrus yang dilaksanakan di Jawa sebagai contoh.
<dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-server</artifactId> <version>1.13</version> </dependency>
MyEndpoint
ialah kelas Endpoint tersuai kami, digunakan untuk mengendalikan sambungan Websocket, mesej dan acara penutup. import org.glassfish.tyrus.server.Server; public class WebsocketServer { public static void main(String[] args) { Server server = new Server("localhost", 8080, "/websocket", MyEndpoint.class); try { server.start(); System.out.println("Websocket server started."); Thread.currentThread().join(); } catch (Exception e) { e.printStackTrace(); } finally { server.stop(); } } }
Dalam contoh ini, anotasi @ServerEndpoint("/websocket")
digunakan untuk menentukan laluan Websocket, @OnOpen
dan < The code>@OnClose anotasi digunakan untuk mengendalikan penubuhan sambungan dan acara penutupan masing-masing, dan @OnMessage
anotasi digunakan untuk mengendalikan mesej yang dihantar oleh klien. MyEndpoint
是我们自定义的Endpoint类,用来处理Websocket的连接、消息和关闭事件。
import javax.websocket.*; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/websocket") public class MyEndpoint { @OnOpen public void onOpen(Session session) { System.out.println("New connection opened: " + session.getId()); } @OnMessage public void onMessage(String message, Session session) { System.out.println("Received message: " + message); session.getAsyncRemote().sendText("Server received your message: " + message); } @OnClose public void onClose(Session session, CloseReason closeReason) { System.out.println("Connection closed: " + session.getId() + " (" + closeReason.getReasonPhrase() + ")"); } }
在这个示例中,@ServerEndpoint("/websocket")
注解用来指定Websocket的路径,@OnOpen
和@OnClose
注解分别用来处理连接建立和关闭事件,@OnMessage
注解用来处理客户端发送的消息。
import javax.websocket.*; public class WebsocketClient { public static void main(String[] args) { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); String uri = "ws://localhost:8080/websocket"; try { Session session = container.connectToServer(MyClientEndpoint.class, URI.create(uri)); session.getBasicRemote().sendText("Hello, Server!"); session.getBasicRemote().sendText("How are you doing?"); session.close(); } catch (Exception e) { e.printStackTrace(); } } }
其中,MyClientEndpoint
Akhir sekali, kita perlu menulis kod pelanggan untuk menyambung dan berkomunikasi dengan pelayan. Berikut ialah contoh mudah:
Antaranya, MyClientEndpoint
ialah kelas Endpoint tersuai kami, digunakan untuk mengendalikan sambungan dan mesej pihak pelanggan.
Atas ialah kandungan terperinci Pengenalan kepada pembangunan Java Websocket: Bagaimana untuk melaksanakan komunikasi dua hala dengan cepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!