理解Java Websocket API有困难

理解Java Websocket API有困难,java,websocket,annotations,Java,Websocket,Annotations,我有一个工作的Java套接字(不是WebSocket)服务器,在初始化时,它加载环境变量,连接到Mongo数据库,从数据库加载数据,最后开始监听端口 当新客户端连接到服务器时,将为该客户端创建一个新线程。客户端发送初始消息进行身份验证(包括聊天室id和密码),服务器检查是否已加载有关所提供聊天室的所有信息(如果未加载,则服务器从数据库加载信息),并将其与用户提供的数据进行比较。如果用户的凭据不正确,服务器将断开连接,否则客户端线程将继续侦听 我现在尝试将套接字服务器转换为WebSocket服务器

我有一个工作的Java套接字(不是WebSocket)服务器,在初始化时,它加载环境变量,连接到Mongo数据库,从数据库加载数据,最后开始监听端口

当新客户端连接到服务器时,将为该客户端创建一个新线程。客户端发送初始消息进行身份验证(包括聊天室id和密码),服务器检查是否已加载有关所提供聊天室的所有信息(如果未加载,则服务器从数据库加载信息),并将其与用户提供的数据进行比较。如果用户的凭据不正确,服务器将断开连接,否则客户端线程将继续侦听

我现在尝试将套接字服务器转换为WebSocket服务器,以便稍后实现JavaScript客户端。但是我发现很难理解WebSocket API是如何工作的

服务器通过调用

Server server = new Server("localhost", 7777, "/websockets", Endpoint.class);
server.start();
Run.class的
publicstaticvoidmain()中

但对于每个客户端,都会创建一个新的
Endpoint.class
实例,这意味着我可能不应该在Endpoint类内部初始化数据库连接。 但是,当我在服务器启动的位置初始化数据库连接时,我无法访问
Endpoint.class
中的数据库

那么,如何将传入消息从端点传递到主服务器类以供以后处理呢? 我如何跟踪所有连接的客户端以及它们连接到哪个房间?在我当前的服务器中,我有一个Room类,它保存连接到该特定房间的所有客户机的ArrayList,当客户机发送消息时,服务器只向该房间内的客户机发送该消息

我知道这肯定不是一个与WebSocket直接相关的问题,而是我对Java的一般知识。我在网上找到的所有教程都只是告诉我该做什么,而不是我为什么要这么做

你知道有什么好的资源可以帮助我解决我的问题吗