1. 전체 유저를 위한 소켓 룸 (접속 확인용)

Client → Server

// 유저 접속 상태 (status)
// C: 접속, D: 접속종료, G: 게임중
socket.emit('stG'); // client
socket.on('stG'); // server
socket.on('connect'); // server
socket.on('disconnect'); //server

// 초대 알람 관련 (invite)
// F: 친구초대, G: 게임초대, A: 관리자 알람
socket.emit('ivF', {sq:<NUMBER> to}); // client
socket.on('ivF', {sq:<NUMBER>from}); // server

socket.emit('ivG', {sq:<NUMBER> to}); // client
socket.on('ivG', {sq:<NUMBER> from}); // server

socket.emit('ivA', {sq:<NUMBER> to}); // client
socket.on('ivA', {sq:<NUMBER> from}); // server

관리자 알람 종류: 채팅방 초대, 업적달성,

2. DM용, 채팅용 소켓룸


cm: STRING, // K: 킥, B: 밴, M: 뮤트

/* dm */
/* client */
socket.emit('dm', {
  mg: <STRING> msg, //어떤 메세지를
  to: <NUMBER> seq //누구에게 
}); // client -> server
socket.on('dm', {
	mg:
	fm:<NUMBER> seq
	to:<NUMBER> seq
}); // client -> server

/* server */ 
socket.on('dm', {
	mg: <STRING> msg,
	to: <NUMBER> seq
}); // server -> client
socket.emit('dm', {
	mg:
	fm:<NUMBER> seq
	to:<NUMBER> seq
}); // server -> client

/* cm  Kick*/
// k,b,m 요청은 api로 응답은 소켓으로
/* client */
socket.on('cmK', {
	to:<NUMBER> seq,
	fm:
});
/* server */
socket.emit('cmK', {
	to:<NUMBER> seq,
	fm:
});

/* cm  Ban*/
/* client */
socket.on('cmB', {
	to:<NUMBER> seq,
	fm:<NUMBER> seq,
});
/* server */
socket.emit('cmB', {
	to:<NUMBER> seq,
	fm:<NUMBER> seq,
});

/* cm  Mute*/
/* client */
socket.on('cmM', {
	to:<NUMBER> seq,
	fm:<NUMBER> seq,
});
/* server */
socket.emit('cmM', {
	to:<NUMBER> seq,
	fm:<NUMBER> seq,
});

admin 권한을 가진 방장이 ban을 하는 경우, ban 당한 사람한테는 새로운 알럿창이 뜨는 형식으로 진행

3. 게임을 위한 소켓 룸 (palyer1, player2 + 관전자들)

게임이 시작되면 1번방에도 정보를 뿌린다.

Server → Client

Client → Server

논의 할 사항