OnDisconnect class

คลาส onDisconnect ช่วยให้คุณสามารถเขียนหรือล้างข้อมูลเมื่อไคลเอนต์ของคุณยกเลิกการเชื่อมต่อจากเซิร์ฟเวอร์ฐานข้อมูล การอัปเดตเหล่านี้เกิดขึ้นไม่ว่าไคลเอ็นต์ของคุณจะยกเลิกการเชื่อมต่ออย่างสมบูรณ์หรือไม่ ดังนั้นคุณจึงสามารถไว้วางใจการอัปเดตเหล่านี้ในการล้างข้อมูลได้ แม้ว่าการเชื่อมต่อจะหลุดหรือไคลเอ็นต์หยุดทำงานก็ตาม

คลาส onDisconnect มักใช้ในการจัดการสถานะในแอปพลิเคชันซึ่งมีประโยชน์ในการตรวจหาจำนวนไคลเอ็นต์ที่เชื่อมต่อและเมื่อไคลเอ็นต์อื่นตัดการเชื่อมต่อ ดู การเปิดใช้งานความสามารถออฟไลน์ใน JavaScript สำหรับข้อมูลเพิ่มเติม

เพื่อหลีกเลี่ยงปัญหาเมื่อการเชื่อมต่อหลุดก่อนที่จะโอนคำขอไปยังเซิร์ฟเวอร์ฐานข้อมูล ควรเรียกใช้ฟังก์ชันเหล่านี้ก่อนที่จะเขียนข้อมูลใดๆ

โปรดทราบว่าการดำเนินการ onDisconnect จะถูกทริกเกอร์เพียงครั้งเดียวเท่านั้น หากคุณต้องการให้การดำเนินการเกิดขึ้นทุกครั้งที่มีการตัดการเชื่อมต่อ คุณจะต้องสร้างการดำเนินการ onDisconnect ใหม่ทุกครั้งที่คุณเชื่อมต่อใหม่

ลายเซ็น:

export declare class OnDisconnect 

วิธีการ

วิธี ตัวดัดแปลง คำอธิบาย
ยกเลิก() ยกเลิกการตั้งค่าหรืออัปเดตเหตุการณ์ onDisconnect() ที่จัดคิวไว้ก่อนหน้านี้ทั้งหมดสำหรับตำแหน่งนี้และรายการย่อยทั้งหมด หากการเขียนถูกจัดคิวสำหรับตำแหน่งนี้ผ่าน set() หรือ update() ที่ตำแหน่งหลัก การเขียนที่ตำแหน่งนี้จะถูกยกเลิก แม้ว่าการเขียนไปยังตำแหน่งพี่น้องจะยังคงเกิดขึ้นก็ตาม
ลบ() ตรวจสอบให้แน่ใจว่าข้อมูล ณ ตำแหน่งนี้ถูกลบเมื่อไคลเอนต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)
ตั้งค่า) ตรวจสอบให้แน่ใจว่าข้อมูลที่ตำแหน่งนี้ถูกตั้งค่าเป็นค่าที่ระบุเมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย) set() มีประโยชน์อย่างยิ่งสำหรับการนำระบบ "การแสดงตน" ไปใช้ โดยควรเปลี่ยนหรือล้างค่าเมื่อผู้ใช้ยกเลิกการเชื่อมต่อเพื่อให้ปรากฏว่า "ออฟไลน์" แก่ผู้ใช้รายอื่น ดู การเปิดใช้งานความสามารถออฟไลน์ใน JavaScript สำหรับข้อมูลเพิ่มเติม โปรดทราบว่าการดำเนินการ onDisconnect จะถูกทริกเกอร์เพียงครั้งเดียวเท่านั้น หากคุณต้องการให้การดำเนินการเกิดขึ้นทุกครั้งที่มีการตัดการเชื่อมต่อ คุณจะต้องสร้างการดำเนินการ onDisconnect ใหม่ทุกครั้ง
setWithPriority (ค่า, ลำดับความสำคัญ) ตรวจสอบให้แน่ใจว่าข้อมูลที่ตำแหน่งนี้ถูกตั้งค่าเป็นค่าและลำดับความสำคัญที่ระบุเมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)
อัปเดต (ค่า) เขียนค่าหลายค่าที่ตำแหน่งนี้เมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย) อาร์กิวเมนต์ values ประกอบด้วยคู่ค่าคุณสมบัติหลายคู่ที่จะถูกเขียนลงฐานข้อมูลด้วยกัน คุณสมบัติย่อยแต่ละรายการอาจเป็นคุณสมบัติแบบง่าย (เช่น "ชื่อ") หรือเส้นทางสัมพันธ์ (เช่น "ชื่อ/ชื่อ") จากตำแหน่งปัจจุบันไปยังข้อมูลที่จะอัปเดต ตรงข้ามกับเมธอด set() สามารถใช้ update() เพื่อเลือกอัปเดตเฉพาะคุณสมบัติที่อ้างอิงในตำแหน่งปัจจุบัน (แทนที่จะแทนที่คุณสมบัติลูกทั้งหมดที่ตำแหน่งปัจจุบัน)

OnDisconnect.ยกเลิก()

ยกเลิกการตั้งค่าหรืออัปเดตเหตุการณ์ onDisconnect() ที่จัดคิวไว้ก่อนหน้านี้ทั้งหมดสำหรับตำแหน่งนี้และรายการย่อยทั้งหมด

หากการเขียนถูกจัดคิวสำหรับตำแหน่งนี้ผ่าน set() หรือ update() ที่ตำแหน่งหลัก การเขียนที่ตำแหน่งนี้จะถูกยกเลิก แม้ว่าการเขียนไปยังตำแหน่งพี่น้องจะยังคงเกิดขึ้นก็ตาม

ลายเซ็น:

cancel(): Promise<void>;

ผลตอบแทน:

สัญญา<โมฆะ>

แก้ไขเมื่อการซิงโครไนซ์กับเซิร์ฟเวอร์เสร็จสมบูรณ์

OnDisconnect.remove ()

ตรวจสอบให้แน่ใจว่าข้อมูล ณ ตำแหน่งนี้ถูกลบเมื่อไคลเอนต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)

ลายเซ็น:

remove(): Promise<void>;

ผลตอบแทน:

สัญญา<โมฆะ>

แก้ไขเมื่อการซิงโครไนซ์กับเซิร์ฟเวอร์เสร็จสมบูรณ์

OnDisconnect.set()

ตรวจสอบให้แน่ใจว่าข้อมูลที่ตำแหน่งนี้ถูกตั้งค่าเป็นค่าที่ระบุเมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)

set() มีประโยชน์อย่างยิ่งสำหรับการนำระบบ "การแสดงตน" ไปใช้ โดยควรเปลี่ยนหรือล้างค่าเมื่อผู้ใช้ยกเลิกการเชื่อมต่อเพื่อให้ปรากฏว่า "ออฟไลน์" แก่ผู้ใช้รายอื่น ดู การเปิดใช้งานความสามารถออฟไลน์ใน JavaScript สำหรับข้อมูลเพิ่มเติม

โปรดทราบว่าการดำเนินการ onDisconnect จะถูกทริกเกอร์เพียงครั้งเดียวเท่านั้น หากคุณต้องการให้การดำเนินการเกิดขึ้นทุกครั้งที่มีการตัดการเชื่อมต่อ คุณจะต้องสร้างการดำเนินการ onDisconnect ใหม่ทุกครั้ง

ลายเซ็น:

set(value: unknown): Promise<void>;

พารามิเตอร์

พารามิเตอร์ พิมพ์ คำอธิบาย
ค่า ไม่ทราบ ค่าที่จะเขียนไปยังตำแหน่งนี้เมื่อตัดการเชื่อมต่อ (อาจเป็นออบเจ็กต์ อาร์เรย์ สตริง ตัวเลข บูลีน หรือค่าว่าง)

ผลตอบแทน:

สัญญา<โมฆะ>

แก้ไขเมื่อการซิงโครไนซ์กับฐานข้อมูลเสร็จสมบูรณ์

OnDisconnect.setWithPriority()

ตรวจสอบให้แน่ใจว่าข้อมูลที่ตำแหน่งนี้ถูกตั้งค่าเป็นค่าและลำดับความสำคัญที่ระบุเมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)

ลายเซ็น:

setWithPriority(value: unknown, priority: number | string | null): Promise<void>;

พารามิเตอร์

พารามิเตอร์ พิมพ์ คำอธิบาย
ค่า ไม่ทราบ ค่าที่จะเขียนไปยังตำแหน่งนี้เมื่อตัดการเชื่อมต่อ (อาจเป็นออบเจ็กต์ อาร์เรย์ สตริง ตัวเลข บูลีน หรือค่าว่าง)
ลำดับความสำคัญ หมายเลข | สตริง | โมฆะ ลำดับความสำคัญที่จะเขียน (สตริง ตัวเลข หรือค่าว่าง)

ผลตอบแทน:

สัญญา<โมฆะ>

แก้ไขเมื่อการซิงโครไนซ์กับฐานข้อมูลเสร็จสมบูรณ์

OnDisconnect.อัพเดต()

เขียนค่าหลายค่าที่ตำแหน่งนี้เมื่อไคลเอ็นต์ถูกตัดการเชื่อมต่อ (เนื่องจากการปิดเบราว์เซอร์ การนำทางไปยังหน้าใหม่ หรือปัญหาเครือข่าย)

อาร์กิวเมนต์ values ประกอบด้วยคู่ค่าคุณสมบัติหลายคู่ที่จะถูกเขียนลงในฐานข้อมูลร่วมกัน คุณสมบัติย่อยแต่ละรายการอาจเป็นคุณสมบัติแบบง่าย (เช่น "ชื่อ") หรือเส้นทางสัมพันธ์ (เช่น "ชื่อ/ชื่อ") จากตำแหน่งปัจจุบันไปยังข้อมูลที่จะอัปเดต

ตรงข้ามกับเมธอด set() สามารถใช้ update() เพื่อเลือกอัปเดตเฉพาะคุณสมบัติที่อ้างอิงในตำแหน่งปัจจุบัน (แทนที่จะแทนที่คุณสมบัติลูกทั้งหมดที่ตำแหน่งปัจจุบัน)

ลายเซ็น:

update(values: object): Promise<void>;

พารามิเตอร์

พารามิเตอร์ พิมพ์ คำอธิบาย
ค่านิยม วัตถุ วัตถุที่มีหลายค่า

ผลตอบแทน:

สัญญา<โมฆะ>

แก้ไขเมื่อการซิงโครไนซ์กับฐานข้อมูลเสร็จสมบูรณ์