DX 게시판 실시간 인원 (dx-board-online) 패치 내역
v2.9.0 (2026-08-31)
버그 수정
- 신규 접속자 인원 미반영 문제 해결
- 기존 접속자가 자유게시판에 3명 있을 때, 신규 접속자에게는 1명으로만 표시되던 버그 수정
- 원인: 신규 접속자
join이벤트 broadcast 시 기존 접속자들의board_key가 신규 접속자의DX_ACTIVE_USERS에 반영되지 않음
변경 사항
- 핑퐁(Ping-Pong) 방식 도입
- 신규 접속자의
join이벤트 수신 시 기존 접속자들이 자신의 현재board_key를 포함한update이벤트를 재전송 - 소켓 서버가 해당 데이터를 기존
client_data에 머지 후 전체 broadcast → 신규 접속자가 즉시 기존 접속자들의board_key파악 가능 - 폴링 방식 대신 이벤트 기반으로 처리하여 공유호스팅 환경 부담 최소화
- 신규 접속자의
기술 상세
// dxSocketUpdateWidget 체이닝 내 추가된 핑퐁 로직
if (m && m.type === 'join' && BOARD_KEY && window._dxBoPatch) {
window.sendEvent({ type: 'update', board_key: BOARD_KEY });
}
m.type === 'join'— 신규 접속자 진입 시에만 반응BOARD_KEY— 게시판 페이지에 있는 접속자만 응답 (일반 페이지는 빈 문자열이므로 응답 안 함)window._dxBoPatch—sendEvent패치 완료 후에만 실행
v2.8.0 (초기 버전)
기능
- 상단 GNB 실시간 게시판별 인원 표시
- 모바일 패널 실시간 인원 표시
- 사이드 메뉴 실시간 인원 표시
- 게시판 목록 제목(h1) 옆 실시간 인원 뱃지 표시
sendEvent패치로join/update이벤트에board_key자동 첨부dxSocketUpdateWidget체이닝으로 소켓 수신 시 자동 갱신- 소켓 연결 후 1명 이상일 때만 뱃지 표시 (초기 숨김)
MutationObserver로 동적 생성 DOM 대응
의존성: dx-socket 플러그인 (tracker 기능 활성화 필수)