---
title: มัลติเพลย์ รูม
slug: world-sdk-guide-th/dSXaeoVKngNh_HY4RRrSo
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 Multiplay สร้าง Client Session และเชื่อมต่อกับห้อง
3. ถ้าห้องเชื่อมต่อสำเร็จ
   - แชร์ Room ID และ Session 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 />พารามิเตอร์ไคลเอนต์ (SandboxPlayer) จะมี sessionId ของไคลเอนต์            |
| onLeave(client: SandboxPlayer, consented?: boolean) | เรียกเมื่อไคลเอนต์ออกจากห้อง<br />พารามิเตอร์ consented จะเป็น true เมื่อการตัดการเชื่อมต่อถูกขอโดยไคลเอนต์   |
| onTick(deltaTime: number)                           | เรียกเหตุการณ์ช่วงเวลาในฝั่งเซิร์ฟเวอร์ สามารถตั้งค่าช่วงเวลาได้ใน SandboxOptions<br />(tickInterval : 100ms) |

:::hint{type="danger"}
- เหตุการณ์ `OnLeave()` จะเกิดขึ้นเมื่อคุณกด 'ปุ่มโฮม > ออกจาก' ที่มุมซ้ายบนระหว่างสถานะการทดสอบบนมือถือ
  - เหตุการณ์ `OnLeave()` จะไม่เกิดขึ้นใน Unity editor
:::



หากคุณสนใจใน ZEPETO.Multiplay Server API โปรดดูเอกสาร:

:::hint{type="info"}
**📘&#x20;**&#xE42;ปรดดูคู่มือต่อไปนี้. \[[ZEPETO.Multiplay(Server) API](https://developer.zepeto.me/docs/multiplay-server/)]
:::



## Client API

ZepetoWorldMultiplay คอมโพเนนต์ให้ส่วนติดต่อสำหรับลูกค้าในการสมัครสมาชิกเพื่อเข้าร่วมกิจกรรมการเล่นในโลก (ห้อง) จากเซิร์ฟเวอร์ ZEPETO Multiplay.

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

รายการของกิจกรรมที่มีอยู่:

| **ห้อง EventListener**    | **คำอธิบาย**                                                              |
| ------------------------- | ------------------------------------------------------------------------- |
| RoomCreated(Room)         | เรียกเมื่อห้องถูกสร้างและสามารถเข้าถึงได้ ให้พารามิเตอร์ห้อง              |
| RoomJoined(Room)          | เรียกเมื่อห้องเชื่อมต่อ ให้พารามิเตอร์ห้อง                                |
| RoomLeave(RoomLeaveEvent) | เรียกเมื่อมีการตัดการเชื่อมต่อจากห้อง ให้พารามิเตอร์ RoomLeaveEvent       |
| RoomReconnected(Room)     | เรียกเมื่อห้องที่เกี่ยวข้องเชื่อมต่ออีกครั้ง ให้พารามิเตอร์ห้อง           |
| RoomError(RoomErrorEvent) | เรียกเมื่อเกิดข้อผิดพลาดในห้องที่เกี่ยวข้อง ให้พารามิเตอร์ RoomErrorEvent |
| RoomWeakConnection        | เรียกเมื่อการเชื่อมต่อไม่เสถียร                                           |

