Floating License คืออะไร เหมาะกับใคร
อธิบาย floating license (นับที่นั่งพร้อมกัน) ด้วยภาษาง่าย ๆ ต่างจาก license ผูกเครื่องอย่างไร, ใช้ heartbeat ยึดที่นั่งคืนเมื่อไร และตัวอย่าง use case ห้องแล็บ/ทีมที่ใช้สลับกัน
“ผมขายให้ทีม 10 คน แต่ไม่อยากซื้อ 10 คีย์ เพราะจริง ๆ ใช้พร้อมกันแค่ 3 คน” — โจทย์นี้ คือที่มาของ floating license (บางที่เรียก concurrent license) บทความนี้ อธิบายว่ามันคืออะไร ต่างจาก license ผูกเครื่องอย่างไร และเหมาะกับใคร
ผูกเครื่อง vs Floating
license ผูกเครื่อง (node-locked): 1 คีย์ใช้ได้กับเครื่องที่ลงทะเบียนไว้ ตามจำนวน max_activations ใครจะใช้ก็ต้องเป็นเครื่องในรายชื่อนั้น
floating: นับ “จำนวนที่ใช้พร้อมกัน” แทน เครื่องไหนก็ได้ขอที่นั่งมา ใช้ พอเลิกใช้ก็คืนที่นั่งให้คนอื่นต่อ ตราบใดที่ “ใช้พร้อมกัน” ไม่เกินจำนวนที่นั่ง ก็ผ่าน เหมาะกับเครื่องมือที่คนสลับกันใช้มากกว่าจะติดตัวคนเดียว
หัวใจของ floating: heartbeat คืนที่นั่ง
คำถามคือ “รู้ได้ไงว่าใครเลิกใช้แล้ว?” คำตอบคือ heartbeat เครื่องที่ กำลังใช้จะส่งสัญญาณ “ยังออนไลน์” เป็นรอบ ๆ ถ้าเครื่องไหนเงียบเกินกำหนด (KeyThai ใช้ ราว 3 เท่าของ heartbeatIntervalSeconds ของ policy) เซิร์ฟเวอร์ถือว่าเลิกใช้แล้ว และยึดที่นั่งคืนอัตโนมัติให้คนถัดไป โดยไม่ต้องให้ผู้ใช้กดออกเอง
ตั้งค่าได้ที่ policy: เปิด floating และ heartbeatRequired แล้วกำหนด heartbeatIntervalSeconds ฝั่งแอปใช้ startAutoHeartbeat ของ SDK ส่งให้อัตโนมัติ:
import { KeyThaiClient } from "keythai-sdk";
const client = new KeyThaiClient({ apiKey: "kt_live_xxxxxxxxxxxx" });
const key = "KEYT-AB12-3C4D-5E6F-7G8H-9J0K";
// 1) activate ครั้งแรกเพื่อยึดที่นั่ง
await client.activate(key, { fingerprint, platform: "windows" });
// 2) ส่ง heartbeat อัตโนมัติ — beat แรกทันที จากนั้นทุก ๆ interval
const stopper = client.startAutoHeartbeat(key, fingerprint, {
intervalSeconds: 60, // ตั้งให้ <= heartbeat_interval_seconds ของ policy
onBeat: (res) => console.log("ยังออนไลน์:", res.status),
onError: (err) => console.warn("heartbeat ล้มเหลว (ชั่วคราว):", err),
});
// ตอนปิดแอป — คืน loop (idempotent)
stopper.stop();เหมาะกับใคร: ตัวอย่าง use case
ห้องแล็บ/ห้องคอม: มีเครื่อง 40 เครื่องแต่ซื้อ 10 ที่นั่ง นักศึกษาเปิดโปรแกรม ที่เครื่องไหนก็ได้ ตราบใดที่ใช้พร้อมกันไม่เกิน 10
ทีมที่ใช้สลับกะ: ทีม support 30 คนทำงาน 3 กะ ใช้พร้อมกันจริงแค่กะละ 10 — ซื้อ 10 ที่นั่งพอ ประหยัดกว่าซื้อ 30 คีย์
ปลั๊กอิน/เครื่องมือภายในองค์กร: ติดตั้งทั่วบริษัทแต่คิดเงินตามการใช้งานจริง พร้อมกัน
ถ้า use case ของคุณคือ “1 คน 1 เครื่องตายตัว” node-locked + fingerprint จะตรงกว่า อ่าน Device Fingerprint และดูวิธีตั้ง auto-heartbeat แบบละเอียดที่ Auto-Heartbeat