คลาส 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>;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
ค่านิยม | วัตถุ | วัตถุที่มีหลายค่า |
ผลตอบแทน:
สัญญา<โมฆะ>
แก้ไขเมื่อการซิงโครไนซ์กับฐานข้อมูลเสร็จสมบูรณ์