Rev. 2.73

오래전 Jabbify용으로 만들었던 마우스 포인트 트래킹 커뮤니케이터에 기능을 보강하여 Socket.IO용으로 다시 만들어 보았습니다. 이 사이트에 접속한 사용자의 마우스 위치가 스마일 모양으로 공유되며, 다른 사용자의 스마일에 마우스를 가져가면, 사용자가 조회중인 위치를 알 수 있고 클릭하면 의사소통을 할 수 있으며 더블클릭하면 해당 사용자가 머물러있는 곳으로 즉시 이동할 수 있습니다. 메시지 전송은 접속해 있는 모든 사용자들에게 보내는 방법과 해당 사용자에게만 보낼수 있도록 구분 되어있습니다.

이것은 Socket.IO의 성능을 확인하기 위해 실험적으로 만든 것입니다. top 명령으로 프로세스를 실시간 모니터링 하고 있습니다. 대략적으로 메모리 사용량 10%, CPU 사용량이 10% 정도까지 올라가는 것을 확인하였습니다.

# top
top - 18:05:57 up 5 days, 31 min,  3 users,  load average: 0.19, 0.20, 0.11
Tasks: 127 total,   1 running, 126 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.1%sy,  0.0%ni, 99.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st
Mem:    524288k total,   499736k used,    24552k free,    73024k buffers
Swap:  1081336k total,    20952k used,  1060384k free,   171040k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3983 root      15   0  644m  56m 5136 S  5.0 11.1   0:16.89 node

근데, 제가 잘못 구현한 건지 소켓.IO 문제인지 시간이 흐를수록 메모리(buffers, cached) 사용량이 조금씩 증가하면서 swap이 발생합니다. 당연한 건가요? 리스타트 한번 해주면 갑자가 뚝 떨어지고요;

Updates:
* 2011/09/02 - both: 마우스 업/다운 액션 공유
* 2011/09/02 - client: HSV에 의한 무작위 색상 검출
* 2011/09/02 - client: 고스트에 말하기, 눈깜빡임, 윙크 표정 추가
* 2011/09/01 - client: y축 말풍선 위치 교정
* 2011/08/31 - client: IE6, 7 지원
* 2011/08/31 - both: 버전 기반 디펜던시 추가
* 2011/08/31 - both: 재접속 오류, 현재 접속 사용자 정보 동기화 오류 수정
* 2011/08/31 - server: idle 상태 검사 추가
* 2011/08/31 - client: 서브스크라이브 이벤트 중첩 오류 수정
* 2011/08/31 - both: 사용자 접속 및 초기 접속자 생성 논리 변경
* 2011/08/31 - server: idle 상태의 사용자에게는 고스트의 이동정보를 송신하지 않음
* 2011/08/31 - client: 초당 10회 송신하는 패킷에 이동정보를 추가로 전송하여 초당 60프레임 렌더
* 2011/08/30 - socket.io 0.8.2 업데이트 및 MozWebSocket 활성
* 2011/08/29 - server: 별도로 관리하던 사용자 정보 스토어를 Socket.IO의 Data Store에 저장함
* 2011/08/25 - client: 고스트의 애니메이션 처리 개선
* 2011/08/23 - client: 초당 12.5 프레임 간격으로 싱크
* 2011/08/23 - server: WebSocket과 FlashSocket만 사용하도록 설정 변경
* 2011/08/20 - both: 각종 서브스크라이브 이벤트를 onmessage로 통합 및 추상화
* 2011/08/15 - both: 크로스 도메인 호출 기본 설정 및 적용영역 확장
* 2011/08/14 - client: 플래시 소켓 초기화 자동화 및 socket.io.js 별도 관리
* 2011/08/14 - both: 폴링 통신 제거 및 싱크 레이트 상향
* 2011/08/12 - client: idle 상태 추가 및 관련 기능 추가
* 2011/08/12 - server: 개인에게 보낸 메시지는 개인에게만 데이터 발송
* 2011/08/10 - both: 링크 오류 및 이벤트 오류 등 각종 마이너 버그 수정

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar