[]
        
(Showing Draft Content)

Server Connection Class

Connection 클래스는 서버와 클라이언트 인스턴스 간의 양방향 통신 채널을 나타내며, 메시지 송수신, 브로드캐스팅, 이벤트 관리를 가능하게 합니다.

서버는 클라이언트가 연결될 때 Connection 객체를 생성하며, 이 객체를 사용해 특정 클라이언트와의 통신을 관리합니다. 서버는 MiddlewareHooks를 통해 이 객체에 접근합니다.

속성

id: 연결의 고유 식별자 (string)

console.log(connection.id); // "XBtqzsRMPh7MaVvaAAAB"

roomId: 연결이 속한 룸의 ID (string)

query: 클라이언트가 연결 시 전달한 쿼리 파라미터 (키-값 객체)

auth: 클라이언트의 인증 데이터 (키-값 객체)

tags: 사용자 정의 데이터를 저장하기 위한 Map

connection.tags.set('role', 'admin');

메소드

send

send 메서드를 사용하여 서버로 메시지를 전송합니다.

send(data: MessageData, type?: MessageType): void;

매개변수

  • data: 전송할 데이터

  • type(선택): 메시지의 목적이나 범주를 식별하기 위한 메시지 타입

broadcast

broadcast() 메서드를 사용하여 동일한 룸에 있는 클라이언트들에게 메시지를 브로드캐스트합니다.

broadcast(data: MessageData, type?: MessageType, includeSelf?: boolean): void;

매개변수

  • data: 전송할 메시지 내용

  • type: 메시지 타입, 기본값은 빈 문자열

  • includeSelf(선택): true로 설정하면 현재 연결을 포함한 룸 내 모든 클라이언트가 메시지를 수신

예시

  • 송신자를 제외한 동일 룸의 모든 클라이언트에게 메시지 브로드캐스트:

connection.broadcast('hello, client!');
  • 송신자를 포함한 동일 룸의 모든 클라이언트에게 메시지 브로드캐스트:

connection.broadcast('hello, client!', '', true);

close

close 메서드를 사용하여 클라이언트와의 연결을 종료합니다.

connection.close();

이 메서드는 현재 클라이언트와의 연결을 종료하고 관련 리소스를 정리합니다.