Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

การจับคู่ที่เป็นเจ้าของโดยGateway(ตัวเลือกB)

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

สำคัญ: โหนดWSใช้การจับคู่อุปกรณ์(บทบาท node)ระหว่าง connect
node.pair.*เป็นที่เก็บการจับคู่แยกต่างหากและไม่ใช้เป็นเกณฑ์ในการทำWS handshake เฉพาะไคลเอนต์ที่เรียก node.pair.* โดยชัดเจนเท่านั้นที่ใช้โฟลว์นี้ node.pair.* เป็นที่เก็บการจับคู่แยกต่างหาก และ ไม่ ใช้ควบคุมการจับมือ WS มีเพียงไคลเอนต์ที่เรียก node.pair.* อย่างชัดเจนเท่านั้นที่ใช้โฟลว์นี้

แนวคิด

  • คำขอที่รอดำเนินการ: โหนดร้องขอเข้าร่วม; ต้องได้รับการอนุมัติ
  • โหนดที่จับคู่แล้ว: โหนดที่ได้รับอนุมัติและมีการออกโทเคนยืนยันตัวตน
  • ทรานสปอร์ต: ปลายทางWSของGatewayทำหน้าที่ส่งต่อคำขอแต่ไม่ตัดสินใจเรื่องสมาชิกภาพ(การรองรับTCP bridge แบบเดิมเลิกใช้/ถูกนำออกแล้ว) (การรองรับบริดจ์ TCP แบบเดิมเลิกใช้/ถูกนำออกแล้ว)

การทำงานของการจับคู่

  1. โหนดเชื่อมต่อกับWSของGatewayและร้องขอการจับคู่
  2. Gatewayจัดเก็บคำขอที่รอดำเนินการและส่งอีเวนต์ node.pair.requested
  3. คุณอนุมัติหรือปฏิเสธคำขอ(ผ่านCLIหรือUI)
  4. เมื่ออนุมัติ Gatewayจะออกโทเคนใหม่(โทเคนจะถูกหมุนเวียนเมื่อมีการจับคู่ใหม่)
  5. โหนดเชื่อมต่อใหม่โดยใช้โทเคนและถือว่า“จับคู่แล้ว”

คำขอที่รอดำเนินการจะหมดอายุอัตโนมัติหลังจาก 5 นาที

เวิร์กโฟลว์CLI(เหมาะกับการทำงานแบบไร้หัว)

openclaw nodes pending
openclaw nodes approve <requestId>
openclaw nodes reject <requestId>
openclaw nodes status
openclaw nodes rename --node <id|name|ip> --name "Living Room iPad"

nodes status แสดงโหนดที่จับคู่แล้ว/เชื่อมต่ออยู่และความสามารถของแต่ละโหนด

พื้นผิวAPI(โปรโตคอลGateway)

อีเวนต์:

  • node.pair.requested — ส่งเมื่อมีการสร้างคำขอที่รอดำเนินการใหม่
  • node.pair.resolved — ส่งเมื่อคำขอถูกอนุมัติ/ปฏิเสธ/หมดอายุ

เมธอด:

  • node.pair.request — สร้างหรือใช้ซ้ำคำขอที่รอดำเนินการ
  • node.pair.list — แสดงรายการโหนดที่รอดำเนินการ+ที่จับคู่แล้ว
  • node.pair.approve — อนุมัติคำขอที่รอดำเนินการ(ออกโทเคน)
  • node.pair.reject — ปฏิเสธคำขอที่รอดำเนินการ
  • node.pair.verify — ตรวจสอบ { nodeId, token }

หมายเหตุ:

  • node.pair.request เป็น idempotent ต่อโหนด: การเรียกซ้ำจะได้คำขอที่รอดำเนินการเดิม
  • การอนุมัติจะสร้างโทเคนใหม่ เสมอ; จะไม่มีการส่งคืนโทเคนจาก node.pair.request
  • คำขออาจรวม silent: true เป็นตัวบ่งชี้สำหรับโฟลว์การอนุมัติอัตโนมัติ

การอนุมัติอัตโนมัติ(แอปmacOS)

แอปmacOSสามารถพยายามทำการอนุมัติแบบเงียบได้เมื่อ:

  • คำขอถูกทำเครื่องหมายเป็น silent และ
  • แอปสามารถยืนยันการเชื่อมต่อSSHไปยังโฮสต์Gatewayโดยใช้ผู้ใช้เดียวกัน

หากการอนุมัติแบบเงียบล้มเหลว ระบบจะกลับไปใช้พรอมต์ปกติ“อนุมัติ/ปฏิเสธ”

ที่เก็บข้อมูล(ภายในเครื่อง,ส่วนตัว)

สถานะการจับคู่ถูกจัดเก็บภายใต้ไดเรกทอรีสถานะของGateway(ค่าเริ่มต้น ~/.openclaw):

  • ~/.openclaw/nodes/paired.json
  • ~/.openclaw/nodes/pending.json

หากคุณแทนที่ OPENCLAW_STATE_DIR โฟลเดอร์ nodes/ จะย้ายตามไปด้วย

หมายเหตุด้านความปลอดภัย:

  • โทเคนเป็นความลับ; ควรปฏิบัติต่อ paired.json เป็นข้อมูลอ่อนไหว
  • การหมุนเวียนโทเคนต้องมีการอนุมัติใหม่(หรือลบรายการโหนด)

พฤติกรรมของทรานสปอร์ต

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