---
title: Multiplay Room
slug: world-sdk-guide-kr/multiplay-room
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

## 룸 연결 프로세스

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-9_rdZyDRLkm1_dgfSR1fh-20240904-102419.png)

:::hint{type="success"}
👍 **룸 연결 프로세스**

1. 클라이언트로부터 연결 요청
2. ZEPETO 멀티플레이 서버가 클라이언트 세션을 생성하고 방에 연결합니다
3. 방이 성공적으로 연결되면
   - 클라이언트에 연결된 방 ID와 세션 ID를 공유합니다
4. 클라이언트가 방에 접근할 수 없는 경우
   - 새 방을 생성하고 연결합니다
:::



## 서버 API

서버 코드는 World.multiplay 패키지 → index.ts 파일에 구현되어야 합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-dplxIaxdzMxhJzX_l0cAg-20240904-102419.png)



서버는 다음과 같은 방 생명주기 이벤트를 제공합니다:

| **룸 생애 주기 이벤트**                                     | **설명**                                                                                |
| --------------------------------------------------- | ------------------------------------------------------------------------------------- |
| onCreate(options: SandboxOptions)                   | 룸이 생성되면 한 번 호출됩니다. 룸 초기화 로직을 여기에 추가할 수 있습니다.                                          |
| onJoin(client: SandboxPlayer)                       | 클라이언트가 룸에 참여할 때 호출됩니다.<br />매개변수 client (SandboxPlayer)는 클라이언트의 sessionId 식별자를 포함합니다. |
| onLeave(client: SandboxPlayer, consented?: boolean) | 클라이언트가 룸을 떠날 때 호출됩니다.<br />매개변수 consented는 클라이언트가 연결을 끊을 때 true입니다.                   |
| onTick(deltaTime: number)                           | 서버 측에서 단계 간격 이벤트 호출, 간격 시간은 SandboxOptions에서 설정할 수 있습니다.<br />(tickInterval : 100ms)  |

:::hint{type="danger"}
- 모바일 테스트 상태에서 왼쪽 상단의 '홈 버튼 > 나가기'를 누르면 `OnLeave()` 이벤트가 발생합니다.
  - Unity 에디터에서는 `OnLeave()` 이벤트가 발생하지 않습니다.
:::



ZEPETO.Multiplay 서버 API에 관심이 있으시면, 문서를 참조하세요:

:::hint{type="info"}
**📘&#x20;**&#xB2E4;음 가이드를 참조하세요. \[[ZEPETO.Multiplay(서버) API](https://developer.zepeto.me/docs/multiplay-server/)]
:::



## 클라이언트 API

ZepetoWorldMultiplay 구성 요소는 클라이언트가 ZEPETO Multiplay 서버의 월드 플레이 세션(룸) 이벤트에 구독할 수 있는 인터페이스를 제공합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-xYDw9NldehRFhDN7rCOqA-20240904-102419.png)

사용 가능한 이벤트 목록:

| **룸 이벤트 리스너**         | **설명**                                             |
| --------------------- | -------------------------------------------------- |
| 룸 생성됨(Room)           | 룸이 생성되고 접근 가능할 때 호출됩니다. 룸 매개변수를 제공합니다.             |
| 룸에 참여됨(Room)          | 룸에 연결될 때 호출됩니다. 룸 매개변수를 제공합니다.                     |
| 룸 나가기(RoomLeaveEvent) | 룸에서 연결이 끊어질 때 호출됩니다.<br />룸 나가기 이벤트 매개변수를 제공합니다.   |
| 룸 재연결됨(Room)          | 해당 룸이 재연결될 때 호출됩니다. 룸 매개변수를 제공합니다.                 |
| 룸 오류(RoomErrorEvent)  | 해당 룸에서 오류가 발생할 때 호출됩니다.<br />룸 오류 이벤트 매개변수를 제공합니다. |
| 룸 약한 연결               | 연결이 불안정할 때 호출됩니다.                                  |

