我有一个工作的javasocket(不是websocket)服务器,在初始化时加载环境变量,连接到mongo数据库,从数据库加载数据,最后开始监听端口。
当新客户机连接到服务器时,将为该客户机创建一个新线程。客户端发送一个初始消息进行身份验证(包括聊天室id和密码),服务器检查是否已经加载了有关所提供聊天室的所有信息—如果没有,服务器将从数据库加载信息—并将其与用户提供的数据进行比较。如果用户的凭据不正确,服务器将断开连接,否则客户端线程将继续侦听。
我现在正在尝试将套接字服务器转换为websocket服务器,以便稍后实现javascript客户机。但是我发现很难理解websocketapi是如何工作的。
服务器通过调用
Server server = new Server("localhost", 7777, "/websockets", Endpoint.class);
server.start();
内部 public static void main()
的 Run.class
但对于每一个客户来说 Endpoint.class
,这意味着我可能不应该初始化endpoint类内部的数据库连接。但是当我在服务器启动的位置初始化数据库连接时,我无法访问 Endpoint.class
.
那么,如何将传入消息从端点传递到主服务器类以供以后处理呢?如何跟踪所有连接的客户以及他们连接到哪个房间?在我当前的服务器中,我有一个room类,它包含连接到该特定room的所有客户机的arraylist,当客户机发送消息时,服务器只将该消息发送到该room中的客户机。
我知道这肯定不是一个与websocket直接相关的问题,而是我对java的一般知识。我在网上找到的所有教程都只是告诉我该怎么做,但没有告诉我为什么要这么做。
你知道有什么好的资源可以帮我解决问题吗?
暂无答案!
目前还没有任何答案,快来回答吧!