使用Java WebSocket进行实时通信的实战案例

原创 超、凢脫俗 2024-10-19 09:27 291阅读 0赞

Java WebSocket是一种在客户端和服务器之间提供全双工、低延迟的通信协议。以下是一个简单的WebSocket实战案例,该案例创建了一个简单的聊天室。

  1. 创建WebSocket服务器端(Server.java)
  1. import javax.websocket.OnClose;
  2. import javax.websocket.OnMessage;
  3. import javax.websocket.OnOpen;
  4. import javax.websocket.Session;
  5. public class Server {
  6. @OnOpen
  7. public void onOpen(Session session) {
  8. System.out.println("Client connected: " + session.getId());
  9. }
  10. @OnMessage
  11. public String onMessage(String message, Session session) {
  12. System.out.println("Received message: " + message);
  13. // 如果是聊天室,可以广播给所有连接的客户端
  14. if ("chat".equals(session.getConstraint())) {
  15. for (Session s : serverManager.getSessions()) {
  16. if (s.isOpen() && !s.equals(session)) {
  17. try {
  18. s.getAsyncRemote().sendText(message, session.getId()));
  19. } catch (Exception e) {
  20. System.out.println("Error while sending message: " + e.getMessage());
  21. }
  22. }
  23. }
  24. }
  25. return "Received: " + message;
  26. }
  27. @OnClose
  28. public void onClose(Session session) {
  29. System.out.println("Client disconnected: " + session.getId());
  30. }
  31. }
  1. 创建WebSocket客户端(Client.java)
  1. import javax.websocket.ContainerProvider;
  2. import javax.websocket.Session;
  3. public class Client {
  4. private static final String ENDPOINT = "ws://localhost:8080/"; // Replace with your server URL
  5. public static void main(String[] args) {
  6. try {
  7. Session session = ContainerProvider.getContainer().newSession(); // Initialize a new WebSocket session
  8. System.out.println("Connecting to server...");
  9. session.getAsyncRemote().sendText("Hello, WebSocket!", session.getId()); // Send a message to the server
  10. session.close(); // Close the connection when done
  11. } catch (Exception e) {
  12. System.out.println("Error occurred: " + e.getMessage());
  13. }
  14. }
  15. }
  1. 运行客户端和服务器,即可进行简单的WebSocket通信。

注意:以上示例假设你已经在本地运行了一个8080端口的WebSocket服务器。如果使用不同的服务器配置,请根据实际情况修改URL。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读