[]
Connection 클래스는 서버와 클라이언트 인스턴스 간의 양방향 통신 채널을 나타내며, 메시지 송수신, 브로드캐스팅, 이벤트 관리를 가능하게 합니다.
서버는 클라이언트가 연결될 때 Connection 객체를 생성하며, 이 객체를 사용해 특정 클라이언트와의 통신을 관리합니다. 서버는 Middleware와 Hooks를 통해 이 객체에 접근합니다.
id: 연결의 고유 식별자 (string)
console.log(connection.id); // "XBtqzsRMPh7MaVvaAAAB"roomId: 연결이 속한 룸의 ID (string)
query: 클라이언트가 연결 시 전달한 쿼리 파라미터 (키-값 객체)
auth: 클라이언트의 인증 데이터 (키-값 객체)
tags: 사용자 정의 데이터를 저장하기 위한 Map
connection.tags.set('role', 'admin');send 메서드를 사용하여 서버로 메시지를 전송합니다.
send(data: MessageData, type?: MessageType): void;매개변수
data: 전송할 데이터
type(선택): 메시지의 목적이나 범주를 식별하기 위한 메시지 타입
broadcast() 메서드를 사용하여 동일한 룸에 있는 클라이언트들에게 메시지를 브로드캐스트합니다.
broadcast(data: MessageData, type?: MessageType, includeSelf?: boolean): void;매개변수
data: 전송할 메시지 내용
type: 메시지 타입, 기본값은 빈 문자열
includeSelf(선택): true로 설정하면 현재 연결을 포함한 룸 내 모든 클라이언트가 메시지를 수신
예시
송신자를 제외한 동일 룸의 모든 클라이언트에게 메시지 브로드캐스트:
connection.broadcast('hello, client!');송신자를 포함한 동일 룸의 모든 클라이언트에게 메시지 브로드캐스트:
connection.broadcast('hello, client!', '', true);close 메서드를 사용하여 클라이언트와의 연결을 종료합니다.
connection.close();이 메서드는 현재 클라이언트와의 연결을 종료하고 관련 리소스를 정리합니다.