13.1 功能需求(在线用户列表的维护)
2025年09月21日
13.1 功能需求(在线用户列表的维护)
(1)在客户端聊天界面上部添加在线用户下拉列表,下拉列表中选中的当前用户就是用户发送信息的对象。
(2)只要有新用户登录,新登录用户名就会出现在所有其他在线用户的聊天界面下拉列表中;只要有在线用户下线,他的用户名就会从所有其他在线用户的下拉列表中。下拉列表中不应该有当前用户自己的名字。
这里,先简化登录检查问题,服务器端允许所有用户都能够通过登录检查。
实现分析:客户端要发送给好友的信息要先发送给服务器端,由服务器端转发给好友,那么,客户端发送给服务器端的数据就至少有两项:目标用户名和信息内容。服务器端在收到客户端发来的数据之后,必须能够根据目标用户名,找到此用户的网络连接,然后通过此连接将信息转发过去。由此服务器端需要保存所有在线用户的用户名,以及此用户与服务器的网络连接socket,并且能够由用户名即可查询到相应的网络连接。
那么用什么结构来保存一系列的用户名和对应的socket数据呢?怎样可以方便地由用户名获得对应的socket数据呢?
在java.util包中提供了若干容器类,分别用不同的方式来存储和管理批理的内存数据,我们可以从中选择合适的类,来存储和管理服务器的这些用户名和对应的socket。