오늘 구현하기로 한거슨
'방' 이에어
고게 먼소리냐
제가 만드러고 한거슨 온라인 포커에여
근데 포커라는거시 최소,최대 플레이 인원이 정해져 있단 말이져
그래서 뭐가 피료했냐면 사이트에 접속 -> 사이트안에서 만든 방에 입장
하는걸 구현해 보기로 했서요
우선 소켓에서도 '방'이란 개념이 존재해여 room이라는건데
상위개념으로 네임스페이스 란것도 있지만 그냥 room 쓰기로 했어요
접속한사람들을 작은 그룹 단위로 나눌수가 있데여
그 그룹안에서만 이벤트 관리도 된다네여
아무튼 그리고 또 필요한게
방의 기본요소에요
보통 방이라고 하면 방제목하고 현재 방에 들어가있는 사람들 수가 표시되요
그래서 방에 사람들이 입장할때마다 방의 현재인원 수를 구해야 했어요
근데 소켓의 room 기능에 현재인원을 구하는 기능은 업서요
그래서 동적으로 바뀌는 변수가 필요했는데 이때 redis라는걸 처음 써보기로 햇어여
사실 레디스 개념도 생소했어여
대충 알아보니 mysql이나 오라클처럼
하드에다 데이타를 저장하는게 아니라 메모리상에 그냥 저장하고있어서
속도가 좆나 빠른게 장점이라 하더라고여
'엥? 메모리에 데이터를 저장하면 그거완전 세션아니냐?'
사실 이르케 생각하고 있었어요
그라면 npm에서 redis 다운 받으면 그냥 쓸수있는거 아니냐? 하고
설치하고 설명대로 따라했는데 에러가 나더라고여
알고보니 레디스도 다른 db처럼 설치를 해줘야 한데옄ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
npm에 올라와있던건 걍 커넥터같은 거였슴니다
구래숴 레디슨 설치도 해줘여
사실 레디스라는거 들어본지도 얼마 안됬어여
대충 설치끝나니까 알아서 포트로 열려있더라고여
그리고 테스트 용으로 방을 입장했을때의 상황을 코드로 짜봣워요
상황은 이래여
클라이언트에서 join이라는 이벤트를 발생시키면
어떤 방에 들어갔는지 방이름을 전달인자를 받고 레디스에 그 방이름을 키값으로
이벤트를 발생시킨 사람의 id값을 배열에 넣고
그 길이를 받는거에여
다행이 예상했던데로 동작은 해여 오늘한건 레디스 설치랑 방에 사람숫자 구하는걸
해보았어요 이제 해야할껀 방에 입장했을때 클라이언트 쪽에 이벤트 처리하는거하고
그외 여러가지 처리해야할게 존나 많은데 뭘 처리해야할지는 모르겠네요
오늘은 대략 5시간정도 진행했는데
3시간 이상은 '이거 어떻게 처리하지? 어뜨케 구현하지? 무슨 기능이 필요하지?' 등
구상하는데에 날려 먹었네여
댓글 0