go로 웹 소켓에 대한 공부를 시작하면서
제일 쉽게 구현할 수 있었던게 실시간 사용자 카운팅..
일단 테스트 삼아 넣어놓은 것이지만 새 탭으로 접속할때 마다 카운팅 되는게 마음에 안들어서
최근에 IP 카운팅 방식으로 변경했다.
go 를 또 잘 안쓰기 시작해서 가물가물하긴했는데, 구글링 몇번 하니 그렇게 작업이 오래걸리진 않았다.
이미 가지고 있는 RemoteAddr 에서 IP와 포트를 분리 후 배열에 저장하고,
이후 배열에서 중복되는 IP 를 제거해서 카운팅 한다.
구조를 좀 더 변경해서 pushState나, AJAX 를 적용한다면 웹소켓 접속에 대한 부하를 줄일 수 있을 것 같은데
하지만 접속 부하가 어느정도 되는지 조차 잘 모르겠고...
부하테스트 방법은 여러가지겠지만 지금 환경은 어차피 테스트가 주라서 현재는 유지보수에만 집중 하고 있다.
소켓서버, DB서버 분리, 웹서버 로드밸런싱까지.. 아직은 정말 멀고 먼 이야기다.
'이전 프로젝트 > [deprecated] RGB place' 카테고리의 다른 글
[RGB place] 4. Javascript 에서 암호화 후 PHP 에서 복호화 하기 (0) | 2019.11.12 |
---|---|
[RGB place] 3. Nginx 에서 서버 정보 감추기 (0) | 2019.11.11 |
[RGB place] 2. 검색 취약점 보완 : Blind SQL Injection (0) | 2019.11.07 |
[RGB place] 1. 사이트 초기 모델 완성. (0) | 2019.08.01 |
[RGB place] 0. 개인 프로젝트의 근황 정리 (0) | 2017.06.09 |