मुख्य सामग्री पर जाएँ
LICENTIVO / INTEGRATION

फ़्लोटिंग लाइसेंस से एक साथ सॉफ़्टवेयर उपयोग सीमित करें

फ़्लोटिंग सीटें मान्य लीज़ वाले हार्डवेयर डिवाइस गिनती हैं। एक हार्डवेयर के कई सत्र एक सीट साझा करते हैं; हार्डवेयर पहचान न हो तो डिवाइस ID गिनी जाती है।

सत्र कार्यप्रवाह · सभी नौ SDKअपडेट

1. समवर्ती सीट सीमा तय करें

फ़्लोटिंग सीटें मान्य लीज़ वाले हार्डवेयर डिवाइस गिनती हैं। एक हार्डवेयर के कई सत्र एक सीट साझा करते हैं; हार्डवेयर पहचान न हो तो डिवाइस ID गिनी जाती है।

हार्टबीट अंतराल और सत्र की अस्थायी अनुमति की अवधि साथ तय करें। अवधि हार्टबीट अंतराल, उसके अधिकतम jitter और 30 सेकंड के अतिरिक्त समय के योग से अधिक होनी चाहिए। छोटी अवधि छोड़ी गई सीट जल्दी वापस लाती है, लेकिन नेटवर्क बाधा की सहनशीलता घटाती है।

लाइसेंस सीट सीमा और वर्कस्पेस डिवाइस कोटा अलग सीमाएँ हैं। साधारण और फ़्लोटिंग दोनों लाइसेंस वर्तमान मान्य एक्टिवेशन के लिए वर्कस्पेस कोटा लेते हैं।

डिवाइस कोटा वर्तमान सक्रियणों से गिना जाता है और रिलीज़ पर लौटता है। सामान्य लाइसेंस ऑफ़लाइन भी गिने जाते हैं; फ्लोटिंग लाइसेंस की लीज़ समाप्त होने पर भी कोटा अपने आप लौटता है।

10 डिवाइस बदलने पर भी, बदले जाने वाले डिवाइस को पहले रिलीज़ करें और हमेशा अधिकतम 3 मान्य एक्टिवेशन रखें, तो अधिकतम 3 डिवाइस कोटा इकाइयाँ लगेंगी।

2. स्टार्टअप पर सीट प्राप्त करें

कंसोल > उत्पाद से उत्पाद ID कॉपी करें। उसी उत्पाद की हस्ताक्षर सार्वजनिक कुंजियाँ खोलें और हर कुंजी ID/सार्वजनिक कुंजी जोड़ी को आरंभिक कोड में डालें; YOUR_PRODUCT_ID, YOUR_KEY_ID और YOUR_PUBLIC_KEY बदलें। त्वरित एकीकरण यह कोड भी बना सकता है। उत्पाद कॉन्फ़िगरेशन फ़ाइल नहीं चाहिए; SDK डिफ़ॉल्ट रूप से https://www.licentivo.com से जुड़ता है।

नीचे का Go अंश त्रुटि लौटाने वाले ऐप फ़ंक्शन के अंदर रखें। इसमें context, os, os/signal और log इम्पोर्ट चाहिए। exportReport आपका वास्तविक व्यावसायिक कॉलबैक है; customerKey सक्रियण फ़ॉर्म से आता है।

Go · application lifecycle
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()

client, err := licentivo.OpenProduct(ctx, productID, trustedKeys, customerKey,
    func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
    return err // Show an activation error; do not start protected work.
}
defer client.Close() // Attempts to return a floating seat.

// Place this check inside each protected action, not only at startup.
if err := client.RunFeature("export", exportReport); err != nil {
    return err
}
<-ctx.Done()

3. हार्टबीट SDK को चलाने दें

अपना टाइमर न बनाएँ और समानांतर HTTP हार्टबीट अनुरोध न भेजें। SDK स्वीकृत अंतराल से सत्र नवीनीकृत करता है। ऐप चलते समय क्लाइंट जीवित रखें।

हर सुरक्षित हैंडलर में RunFeature रखें। जाँच असफल हो तो वही ऑपरेशन रोककर लाइसेंस संदेश दिखाएँ। पृष्ठभूमि कनेक्शन त्रुटि उपयोगी तरीके से दिखाएँ; स्टार्टअप की सफलता को बाद के सभी कामों की स्थायी अनुमति न मानें।

सत्र अवधि समाप्त होने, लाइसेंस निरस्त होने या सीट न मिलने पर हस्ताक्षरित नियम लागू होते हैं। दोबारा जुड़ने के लिए सफल सर्वर जाँच चाहिए। स्थानीय समाप्ति समय बदलकर सत्र कभी न बढ़ाएँ।

4. सामान्य बंद होने पर सीट लौटाएँ

सामान्य रूप से बंद करते समय क्लाइंट बंद करें। Go में defer client.Close() का उपयोग होता है। Java और C# स्कोप समाप्त होने पर संसाधन छोड़ते हैं; C++ और Rust डिस्ट्रक्टर, Python कॉन्टेक्स्ट मैनेजर और Ruby तथा JavaScript close का उपयोग करते हैं।

यदि ऐप क्रैश हो जाए या बंद होते समय सर्वर से संपर्क न कर सके, तो सत्र की अवधि समाप्त होने पर सर्वर सीट वापस लेता है। यह देरी अपेक्षित है। दूसरे उपयोगकर्ता को बताएँ कि सीट कब उपलब्ध हो सकती है।

फ़्लोटिंग लाइसेंस मान्य लीज़ गिनते हैं। नेटवर्क टूटने या क्रैश से कोटा तुरंत नहीं लौटता; अंतिम सत्र रिलीज़ होना या लीज़ समाप्त होना ज़रूरी है।

5. दो अलग कंप्यूटरों पर परीक्षण करें

  1. परीक्षण लाइसेंस में एक फ़्लोटिंग सीट रखें और कंप्यूटर A पर ऐप चलाएँ।
  2. कंप्यूटर B पर शुरू करें; A के पास सीट रहने तक दूसरा सुरक्षित सत्र अस्वीकार होना चाहिए।
  3. A को सामान्य रूप से बंद करें और पुष्टि करें कि B सीट ले सकता है।
  4. अलग परीक्षण वातावरण में A को सफ़ाई के बिना बंद करें। निर्धारित सत्र अवधि के बाद सीट वापस आने की पुष्टि करें।

सीट टकराव की जाँच

डिवाइस-बद्ध और फ़्लोटिंग मोड बंद होने पर अलग व्यवहार करते हैं। डिवाइस-बद्ध क्लाइंट पंजीकरण रखता है; फ़्लोटिंग क्लाइंट सीट लौटाने की कोशिश करता है। हर बार डिवाइस-बद्ध ऐप बंद होने पर डिवाइस अनबाइंड न करें।

सीट उपयोग में होने का संदेश दूसरे चल रहे इंस्टेंस या हाल में क्रैश हुई प्रक्रिया की सत्र अवधि खत्म होने की प्रतीक्षा के कारण आ सकता है। खरीदी गई सीटें बढ़ाने से पहले कंसोल में वर्तमान सत्र जाँचें।

फ़ाइल से पहली सक्रियण प्रक्रिया डिवाइस-बद्ध लाइसेंस के लिए है। मान्य फ़्लोटिंग सत्र होने पर भी गणना वाले ऑपरेशन के reserve और हिसाब पूरा करने की कॉल ऑनलाइन करनी होती हैं।