커서 위치는 그대로 다 보내지 말고 빈도를 제한해
브라우저의 mousemove 이벤트는 초당 수백 번 발생해. 모두 WebSocket 으로 보내면 연결이 포화되고 서버 자원도 낭비돼. 초당 20~30회로 제한해. 특히 점 사이를 보간하는 CSS 전환을 함께 쓰면 사람의 눈에는 그 이상이 필요하지 않아.
접속 상태도 특별한 메시지일 뿐이야
‘사용자 X 가 온라인’이 메시지 하나고 ‘사용자 X 가 오프라인’이 다른 메시지이며 ‘사용자 X 의 커서가 문서 Y 의 (100,200) 에 있음’도 또 다른 메시지야. 별도의 특별한 접속 상태 프로토콜은 없어. 애플리케이션이 해석하는 자료형 있는 메시지일 뿐이지. Figma 는 presence, Slack 은 user.status라고 부르지만 전송 모양은 같아.