socket interface(client to server)

socket interface(server to client)



데이터 구조

아래의 구조를 갖는 데이터들은 내부 Property를 기술하는 대신 지정한 이름으로 갈음한다.

※ type 명은 설명을 위해 임의로 붙인 이름으로, 실제 코드와 다를 수 있습니다.

유저 정보 (userData)

declare type userData = {
  userId: string // 유저 고유 ID,
  nickname: string // 유저 닉네임
  color: string // 유저의 커서 색깔
  role: number // 유저의 권한 (0: Viewer / 1: Editor / 2: Owner)
}

Object 정보 (objectData)

declare type objectData = {
  objectId: string;  // Object의 고유 ID (UUID)
  type: 'postit' | 'section' | 'draw'; // Object의 종류
  left: number;
  top: number;
  width: number;
  height: number;
  scaleX: number;
  scaleY: number;
  color: string;
  text?: string;      // type = postit / section 한정.
  fontSize?: number;  // type = postit / section 한정.
  path?: string;      // type = draw 한정.
  creator: string;    // 해당 Object를 배치한 유저의 ID
}

Event List

초기화 절차 (init)

유저/게스트가 워크스페이스의 화이트보드에 접근한 경우, 화이트보드 복원 및 온라인 유저들의 정보 수신을 위해 사용한다.

Client To Server

Server to Client

이벤트명 init
이벤트 수신 대상 연결을 시도한 Client
최소 필요 권한(수신) Viewer (0)
입력 데이터 없음
반환 객체 `{
members: userData[],
objects: objectData[],
userData: userData,
}`
반환 상세 members : 화이트보드에 접속 중인 유저 및 게스트의 정보
objects : 화이트보드에 배치된 모든 Object에 대한 정보
userData : 연결을 요청한 사용자에 대한 유저 정보
참고 새로 접근하는 모든 유저/게스트는 Editor (1) 권한을 갖는다.

새로운 유저 접속

새로운 유저/게스트가 화이트보드에 접근하였을 때, 해당 유저에 대한 정보를 전달한다.