Java WebSocket与项目页面(通常是HTML + JavaScript)之间建立连接并传输数据

Java WebSocket与项目页面(通常是HTML + JavaScript)之间建立连接并传输数据

1.创建Java WebSocket服务器:使用Java WebSocket API创建一个WebSocket服务器端点。
2.在HTML页面中使用JavaScript连接WebSocket:通过JavaScript的WebSocket API与Java WebSocket服务器建立连接。
3.双向数据传输:实现服务器和客户端之间的双向数据传输。
以下是一个完整的示例,展示如何实现Java WebSocket服务器与HTML页面的连接和数据传输。

创建Java WebSocket服务器

使用Java的javax.websocket API创建一个WebSocket服务器端点。

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

@ServerEndpoint("/websocket") // WebSocket的访问路径
public class WebSocketServer {

    private static final Set sessions = Collections.synchronizedSet(new HashSet<>());

    @OnOpen
    public void onOpen(Session session) {
        System.out.println("Client connected: " + session.getId());
        sessions.add(session);
    }

    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        System.out.println("Received from client: " + message);
        // 向客户端发送响应
        session.getBasicRemote().sendText("Server received: " + message);
    }

    @OnClose
    public void onClose(Session session) {
        System.out.println("Client disconnected: " + session.getId());
        sessions.remove(session);
    }

    @OnError
    public void onError(Session session, Throwable throwable) {
        System.out.println("Error: " + throwable.getMessage());
    }

    // 向所有连接的客户端广播消息
    public static void broadcast(String message) {
        for (Session session : sessions) {
            try {
                session.getBasicRemote().sendText(message);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

部署WebSocket服务器

将上述代码部署到一个支持Java WebSocket的服务器中,例如:

Tomcat(需要支持Java EE 7或更高版本)

Spring Boot(内置Tomcat,支持WebSocket)

如果使用Spring Boot,可以添加以下依赖:


    org.springframework.boot
    spring-boot-starter-websocket

创建HTML页面并连接WebSocket

在HTML页面中使用JavaScript的WebSocket API与Java WebSocket服务器建立连接。




    
    
    WebSocket Client


    

WebSocket Client

Messages from Server:

    运行项目

    1.启动Java WebSocket服务器:

    如果使用Tomcat,将项目部署到Tomcat并启动服务器。
    
    如果使用Spring Boot,直接运行Spring Boot应用程序。
    

    2.访问HTML页面:

    将HTML文件放在Web服务器的静态资源目录中(例如Tomcat的webapps目录或Spring Boot的src/main/resources/static目录)。
    
    通过浏览器访问HTML页面,例如:http://localhost:8080/index.html。
    

    3.测试连接和数据传输:

    在页面中输入消息并点击“Send”按钮,消息会发送到Java WebSocket服务器。
    
    服务器会将接收到的消息返回给客户端,并显示在页面上。
    

    扩展功能

    1.广播消息:可以在服务器端实现广播功能,向所有连接的客户端发送消息。

    2.JSON数据传输:可以使用JSON格式传输复杂数据,例如:

    在JavaScript中使用JSON.stringify()将对象转换为字符串。
    
    在Java中使用javax.json或Gson解析JSON字符串。
    

    3.安全性:可以添加WebSocket安全配置,例如使用wss://(WebSocket Secure)和身份验证。

    你可能感兴趣的:(java,websocket,html)