ลบผู้ใช้เฉพาะจากห้อง
4 นาที
คุณสามารถเตะผู้ใช้บางคนออกจากห้องในระหว่างการทำงานได้
- กรุณาสร้างโค้ดเซิร์ฟเวอร์ index.ts Sandbox
การกำหนดฟังก์ชัน
kick(client: SandboxPlayer, reason?: string): Promise; | นี่คือฟังก์ชันที่ใช้เตะ SandboxPlayer หลังจากได้รับ SandboxPlayer ที่มี SessionID - หากคุณถูกเตะออก จะมีป๊อปอัพปรากฏขึ้นเพื่อแจ้งให้คุณทราบว่าคุณถูกเตะออก แต่ป๊อปอัพนั้นเป็น UI ของแอป ZEPETO และไม่สามารถตรวจสอบได้โดยผู้แก้ไข |
|---|
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [ZEPETO.Multiplay(Server) API]
ก่อนอื่น เพื่อให้ได้ข้อมูลผู้ใช้ ให้กำหนด Schema Types และ RoomState ดังนี้:

ตัวอย่างการใช้งาน
- ใช้ข้อมูลใน UserInfos เพื่อรับ session ID ของผู้ใช้ที่จะถูกเตะออกจาก userId.
- หลังจากนำเข้า sandbox player ด้วย session ID ให้เรียกใช้ฟังก์ชัน kick.
- ฉันสามารถบอกคุณได้ว่าใครถูกเตะออกผ่านการออกอากาศ.
import { Sandbox, SandboxOptions, SandboxPlayer } from 'ZEPETO.Multiplay';
import { DataStorage, loadDataStorage } from 'ZEPETO.Multiplay.DataStorage';
import { UserInfo } from 'ZEPETO.Multiplay.Schema';
export default class extends Sandbox {
onCreate(options: SandboxOptions) {
this.onMessage("Kick", (client: SandboxPlayer, message: string) => {
this.tryKick(client, message);
});
}
onJoin(client: SandboxPlayer) {
const user = new UserInfo();
user.sessionId = client.sessionId;
user.userId = client.userId;
this.state.UserInfos.set(client.userId, user);
}
async tryKick(client: SandboxPlayer, userId: string) {
let player: SandboxPlayer;
if (userId == null) {
player = client;
} else {
const kickPlayerSessionId: string = this.state.UserInfos.get(userId).sessionId;
player = this.loadPlayer(kickPlayerSessionId);
}
console.log(`try kick : ${player.userId}`);
await this.kick(player);
this.broadcast("Log", `kick : ${player.userId}`);
}
}👍 โดยค่าเริ่มต้น ผู้ใช้ที่ถูกเตะออกสามารถเข้าห้องได้อีกครั้ง
- เพื่อป้องกันไม่ให้เกิดขึ้นนี้ ให้ใช้ฟังก์ชันการจัดการ DataStorage ตาม UserId เพื่อเก็บข้อมูลห้องที่ถูกเตะออกโดยผู้ใช้.
- คุณสามารถดำเนินการโดยการเรียกใช้ kick เมื่อคุณพยายามเข้าห้อง.