一、效果图
登陆页
注册页
注册成功页
聊天页
消息发送接收效果
二、项目结构
三、WebSocket实现
@Slf4j
@Component
@ServerEndpoint(value = "/sanqi_server/{userId}", configurator = WebSocketConfig.class)
public class SanQiWebSocketServer {
private static volatile AtomicInteger onlineCount = new AtomicInteger(0);
private static final ConcurrentHashMap<String, SanQiWebSocketServer> webSocketMap = new ConcurrentHashMap<>();
private static final CopyOnWriteArraySet<SanQiWebSocketServer> webSocketSet = new CopyOnWriteArraySet<>();
private Session session;
/**
* 建立连接时调用
* @param session
*/
@OnOpen
public void onOpen(@PathParam("userId") String userId, Session session) {
this.session = session;
// 在线链接用户
webSocketSet.add(this);
// 所有链接用户对应链接
webSocketMap.put