예제 #1
0
파일: ReadThread.java 프로젝트: ricado/ATM
 public void exit(String userId) {
   try {
     UserService.exit(userId); // 用户退出,修改离线时间
     // socketChannel.shutdownInput();
     // socketChannel.shutdownOutput();
     // OnlineService.deleteLogin(userId, number);
     map.get(userId).socket().close();
     map.get(userId).close();
     mapkey.get(userId).cancel();
     log.info("exit....");
   } catch (Exception e) {
     log.info("close error");
   }
   map.remove(userId);
   mapkey.remove(userId);
   log.info("exit success");
 }
예제 #2
0
파일: ReadThread.java 프로젝트: ricado/ATM
 /**
  * 用户下线
  *
  * @param sc
  * @throws IOException
  */
 public void removeUser(SocketChannel sc) throws IOException {
   log.info("用户下线");
   sc.socket().close();
   sc.close();
   for (String userId : map.keySet()) {
     if (map.get(userId) == sc) {
       log.info("找到userId:" + userId);
       UserService.exit(userId);
       /*sc.socket().close();
       // 关闭
       sc.close();*/
       map.remove(userId);
       mapkey.remove(userId);
       // selectionKey.cancel();
       break;
     }
   }
   getMapInfo();
 }