face2face
face2face copied to clipboard
连接登录问题
当接收到连接时, public static void addClientConnection(ChannelHandlerContext c) { //fixme 之后重复登录需要踢掉原来的连接 ClientConnection conn = new ClientConnection(c);
if(ClientConnectionMap.allClientMap.putIfAbsent(conn.getNetId(), conn) != null) {
logger.error("Duplicated netid");
}
}
这里什么case会 != null呢 ? 因为每次都是new 一个新的Connection ,然后id会incrementAndGet
另外如果重复登录要踢掉原来的连接,如何知道是重复登录呢?
采用统一session认证的方式
这里缺少一个客户端管理,比如加一个心跳包的响应,用一个map管理起来.下次在进来的时候,从map中发现是否已经一个没有失效的clientInfo