// 전체 접속자 리스트 보내기
public void alist(String user, PrintWriter out) {
// System.out.println(user + "가 /alist 호출 시도");
Iterator<String> it = clientMap.keySet().iterator();
String msg = "전체 사용자 리스트 [";
while (it.hasNext()) {
msg += (String) it.next() + ",";
}
msg = msg.substring(0, msg.length() - 1) + "]";
try {
out.println(URLEncoder.encode(msg, "UTF-8"));
} catch (Exception e) {
}
}
전체 사용자 리스트는 HashMap에 있는 사람들 다 보여주면 된다.
// 해당 방 접속자 리스트 보내기
public void plist(String user, PrintWriter out) {
String mem = null;
// System.out.println(user + "가 /plist 호출 시도");
Iterator<String> it = clientMap.keySet().iterator();
while (it.hasNext()) {
mem = it.next();
if (mem.contains(user))
user = mem;
}
int idq = user.indexOf("@");
// System.out.println("@ 위치 : " + idq);
String rmNum = user.substring(idq + 1); // 방번호 추출
// System.out.println("현재 리스트 방 번호 : " + rmNum);
Iterator<String> itq = clientMap.keySet().iterator();
String msg = "현재 방 사용자 리스트 [";
while (itq.hasNext()) {
idq = 0;
mem = itq.next();
if (mem.contains(rmNum)) {
idq = mem.indexOf("@");
msg += (String) mem.substring(0, idq) + ",";
}
}
msg = msg.substring(0, msg.length() - 1) + "]";
try {
out.println(URLEncoder.encode(msg, "UTF-8"));
} catch (Exception e) {
}
}
현재 방 사용자 리스트는 명령어호출한 사람의 닉네임 뒤에 있는 @방번호를 추출해 같은 방 번호를 가진 사용자를 찾아 보여주면 된다.
// 대기실 접속자 리스트 보내기
public void wlist(PrintWriter out) {
String mem = null;
int idq = -1;
Iterator<String> itq = clientMap.keySet().iterator();
String msg = "대기실 사용자 리스트 [";
while (itq.hasNext()) {
idq = 0;
mem = itq.next();
if (mem.contains("1")) {
idq = mem.indexOf("@");
msg += (String) mem.substring(0, idq) + ",";
}
}
msg = msg.substring(0, msg.length() - 1) + "]";
try {
out.println(URLEncoder.encode(msg, "UTF-8"));
} catch (Exception e) {
}
}
대기실 접속자는 방번호가 @1인 사용자를 찾아 보여주면 된다.
'프로젝트 > Java 프로젝트' 카테고리의 다른 글
| 채팅하기 2. 귓속말(고정귓속말, 일회성귓속말) (0) | 2018.09.25 |
|---|---|
| 채팅하기 1. 전체 채팅, 방 채팅 (0) | 2018.09.24 |
| Connection Pool (0) | 2018.09.24 |
| 클라이언트측 Sender (0) | 2018.09.24 |
| 클라이언트측 (0) | 2018.09.24 |