เซิร์ฟเวอร์ ejabberd ของฉันใช้ฐานข้อมูล mysql เป็นที่จัดเก็บข้อมูลภายนอก และฉันใช้วิธี /create_room_with_opts ของ ejabberd API เพื่อสร้างห้องของฉันด้วยตัวเลือก: {name: "persistent", value: "false"} em>. ทุกอย่างทำงานเป็นไฟล์และสร้างห้องให้ดูเหมือนห้องชั่วคราว โดยจะปิดโดยอัตโนมัติเมื่อผู้เข้าร่วมคนสุดท้ายออกไป
แต่ฉันมีปัญหาหนึ่ง - ห้องที่สร้างไม่ถาวรจะถูกบันทึกไว้ในตาราง muc_room แม้ว่าจะต้องมีห้องถาวรเท่านั้น (https://docs.ejabberd.im/developer/sql-schema/#table-muc-room)
ตัวอย่างเช่น ฉันสามารถมีห้องได้โดยมีตัวเลือกต่อไปนี้ในตาราง muc_room:
[{allow_change_subj,true},
{allow_private_messages,true},
{allow_private_messages_from_visitors,anyone},
{allow_query_users,true},
{allow_subscription,false},
{allow_user_invites,false},
{allow_visitor_nickchange,true},
{allow_visitor_status,true},
{anonymous,true},
{captcha_protected,false},
{lang,<<>>},
{logging,false},
{mam,true},
{max_users,200},
{members_by_default,true},
{members_only,false},
{moderated,true},
{password,<<>>},
{password_protected,false},
======> {persistent,false},
{presence_broadcast,[moderator,participant,visitor]},
{public,true},
{public_list,true},
{title,<<>>}]
ปัญหาหลักคือฉันได้รับห้องที่ไม่ถาวรทั้งหมดที่สร้างขึ้นใหม่ขณะรีสตาร์ทเซิร์ฟเวอร์ ejabberd
คำถาม: 1) เหตุใดจึงไม่สร้างห้องถาวรด้วย ejabberd API เก็บไว้ในตาราง muc_room (อาจมีข้อบกพร่องบางอย่าง) 2) วิธีหลีกเลี่ยงการสร้างห้องเหล่านี้ใหม่เมื่อรีสตาร์ทเซิร์ฟเวอร์ ejabberd (ยกเว้นการลบออกจาก DB: ด้วยตนเองหรือใช้เหตุการณ์ mysql)