ब्यौरा
वीपीएन क्लाइंट लागू करने के लिए, chrome.vpnProvider एपीआई का इस्तेमाल करें.
अनुमतियां
vpnProviderउपलब्धता
इस्तेमाल
vpnProvider का आम तौर पर इस तरह इस्तेमाल किया जाता है:
- createConfigतरीके का इस्तेमाल करके, वीपीएन कॉन्फ़िगरेशन बनाएं. वीपीएन कॉन्फ़िगरेशन, ChromeOS के नेटिव यूज़र इंटरफ़ेस में उपयोगकर्ता को दिखने वाली एक स्थायी एंट्री होती है. उपयोगकर्ता, सूची से वीपीएन कॉन्फ़िगरेशन चुन सकता है. इसके बाद, वह इससे कनेक्ट या डिसकनेक्ट कर सकता है.
- onPlatformMessage,- onPacketReceived, और- onConfigRemovedइवेंट में लिसनर जोड़ें.
- जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से कनेक्ट होता है, तो उसे - onPlatformMessage,- "connected"मैसेज के साथ मिलेगा. हम- "connected"और- "disconnected"के बीच के समय को वीपीएन सेशन कहते हैं. इस समयावधि में, जिस एक्सटेंशन को मैसेज मिलता है उसे वीपीएन सेशन का मालिक कहा जाता है.
- वीपीएन सर्वर से कनेक्शन शुरू करें और वीपीएन क्लाइंट शुरू करें. 
- setParametersका इस्तेमाल करके, कनेक्शन के पैरामीटर सेट करें.
- notifyConnectionStateChangedका इस्तेमाल करके, कनेक्शन की स्थिति को- "connected"के तौर पर सूचना दें.
- ऊपर दिए गए चरणों को बिना किसी गड़बड़ी के पूरा करने पर, ChromeOS के नेटवर्क स्टैक के लिए एक वर्चुअल टनल बन जाती है. - sendPacketका इस्तेमाल करके, आईपी पैकेट को टनल के ज़रिए भेजा जा सकता है. साथ ही, ChromeOS डिवाइस पर मौजूद किसी भी पैकेट को- onPacketReceivedइवेंट का इस्तेमाल करके रिसीव किया जा सकता है.
- जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से डिसकनेक्ट हो जाता है, तब - onPlatformMessageको- "disconnected"मैसेज के साथ ट्रिगर किया जाएगा.
- अगर वीपीएन कॉन्फ़िगरेशन की अब ज़रूरत नहीं है, तो - destroyConfigका इस्तेमाल करके इसे मिटाया जा सकता है.
टाइप
Parameters
प्रॉपर्टी
- 
    पतास्ट्रिंग सीआईडीआर नोटेशन में वीपीएन इंटरफ़ेस के लिए आईपी पता. फ़िलहाल, सिर्फ़ IPv4 मोड का इस्तेमाल किया जा सकता है. 
- 
    broadcastAddressstring ज़रूरी नहीं है वीपीएन इंटरफ़ेस के लिए ब्रॉडकास्ट पता. (डिफ़ॉल्ट: आईपी पते और मास्क से अनुमान लगाया जाता है) 
- 
    dnsServersstring[] डीएनएस सर्वर के लिए आईपी पतों की सूची. 
- 
    domainSearchstring[] ज़रूरी नहीं है खोज के लिए इस्तेमाल किए जाने वाले डोमेन की सूची. (डिफ़ॉल्ट: कोई सर्च डोमेन नहीं) 
- 
    exclusionListstring[] सीआईडीआर नोटेशन में आईपी ब्लॉक की सूची में मौजूद नेटवर्क ट्रैफ़िक को टनल से बाहर रखें. इसका इस्तेमाल, वीपीएन सर्वर से आने-जाने वाले ट्रैफ़िक को बायपास करने के लिए किया जा सकता है. जब कई नियम किसी डेस्टिनेशन से मेल खाते हैं, तो सबसे लंबे मैचिंग प्रीफ़िक्स वाला नियम लागू होता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList + inclusionList) सूची में मौजूद ऐसे डुप्लीकेट हटा दिए जाते हैं. साथ ही, यह तय नहीं किया जाता कि कौनसी डुप्लीकेट एंट्री हटाई जाएगी. 
- 
    inclusionListstring[] टनल के लिए, सीआईडीआर नोटेशन में आईपी ब्लॉक की सूची में नेटवर्क ट्रैफ़िक शामिल करें. इस पैरामीटर का इस्तेमाल, स्प्लिट टनल सेट अप करने के लिए किया जा सकता है. डिफ़ॉल्ट रूप से, किसी भी ट्रैफ़िक को टनल पर नहीं भेजा जाता है. इस सूची में "0.0.0.0/0" एंट्री जोड़ने से, उपयोगकर्ता का पूरा ट्रैफ़िक टनल पर रीडायरेक्ट हो जाता है. जब कई नियम किसी डेस्टिनेशन से मेल खाते हैं, तो सबसे लंबे मैचिंग प्रीफ़िक्स वाला नियम लागू होता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList + inclusionList) सूची में मौजूद ऐसे डुप्लीकेट हटा दिए जाते हैं. साथ ही, यह तय नहीं किया जाता कि कौनसी डुप्लीकेट एंट्री हटाई जाएगी. 
- 
    mtustring ज़रूरी नहीं है वीपीएन इंटरफ़ेस के लिए एमटीयू सेटिंग. (डिफ़ॉल्ट: 1,500 बाइट) 
- 
    फिर से कनेक्ट करेंstring ज़रूरी नहीं है Chrome 51 या इसके बाद के वर्शनवीपीएन एक्सटेंशन में, अपने-आप फिर से कनेक्ट होने की सुविधा लागू की गई है या नहीं. अगर यह वैल्यू सही है, तो linkDown,linkUp,linkChanged,suspend, औरresumeप्लैटफ़ॉर्म के मैसेज का इस्तेमाल, इवेंट के बारे में सूचना देने के लिए किया जाएगा. अगर यह वैल्यू 'गलत' पर सेट है, तो नेटवर्क टोपोलॉजी में बदलाव होने पर सिस्टम वीपीएन को ज़बरदस्ती डिसकनेक्ट कर देगा. इसके बाद, उपयोगकर्ता को वीपीएन को मैन्युअल तरीके से फिर से कनेक्ट करना होगा. (डिफ़ॉल्ट: false)यह प्रॉपर्टी, Chrome 51 में नई है. यह पुराने वर्शन में एक अपवाद जनरेट करेगी. try/catch का इस्तेमाल, ब्राउज़र के साथ काम करने की सुविधा के आधार पर, सुविधा को चालू करने के लिए किया जा सकता है. 
PlatformMessage
इस enum का इस्तेमाल प्लैटफ़ॉर्म, क्लाइंट को वीपीएन सेशन की स्थिति के बारे में सूचना देने के लिए करता है.
Enum
"connected" 
 इससे पता चलता है कि वीपीएन कॉन्फ़िगरेशन कनेक्ट हो गया है.
"disconnected" 
 इससे पता चलता है कि वीपीएन कॉन्फ़िगरेशन डिसकनेक्ट हो गया है.
"error" 
 इससे पता चलता है कि वीपीएन कनेक्शन में कोई गड़बड़ी हुई है. उदाहरण के लिए, टाइम आउट. गड़बड़ी की जानकारी, onPlatformMessage को गड़बड़ी के तर्क के तौर पर दी जाती है.
"linkDown" 
 इससे पता चलता है कि डिफ़ॉल्ट फ़िज़िकल नेटवर्क कनेक्शन काम नहीं कर रहा है.
"linkUp" 
 इससे पता चलता है कि डिफ़ॉल्ट फ़िज़िकल नेटवर्क कनेक्शन फिर से चालू हो गया है.
"linkChanged" 
 इससे पता चलता है कि डिफ़ॉल्ट फ़िज़िकल नेटवर्क कनेक्शन बदल गया है. जैसे, वाई-फ़ाई->मोबाइल.
"suspend" 
 इससे पता चलता है कि ओएस, वीपीएन को निलंबित करने की तैयारी कर रहा है. इसलिए, वीपीएन को अपना कनेक्शन बंद कर देना चाहिए. इस बात की कोई गारंटी नहीं है कि निलंबन से पहले एक्सटेंशन को यह इवेंट मिलेगा.
"resume" 
 इससे पता चलता है कि ओएस फिर से चालू हो गया है और उपयोगकर्ता ने फिर से लॉग इन कर लिया है. इसलिए, वीपीएन को फिर से कनेक्ट करने की कोशिश करनी चाहिए.
UIEvent
इस enum का इस्तेमाल प्लैटफ़ॉर्म, उस इवेंट के बारे में बताने के लिए करता है जिसने onUIEvent को ट्रिगर किया है.
Enum
"showAddDialog" 
 इस अनुरोध से, वीपीएन क्लाइंट उपयोगकर्ता को कॉन्फ़िगरेशन जोड़ने का डायलॉग बॉक्स दिखाता है.
"showConfigureDialog" 
 इस अनुरोध से, वीपीएन क्लाइंट को उपयोगकर्ता को कॉन्फ़िगरेशन सेटिंग वाला डायलॉग बॉक्स दिखाने के लिए कहा जाता है.
VpnConnectionState
इस enum का इस्तेमाल VPN क्लाइंट करता है, ताकि प्लैटफ़ॉर्म को अपनी मौजूदा स्थिति के बारे में बताया जा सके. इससे उपयोगकर्ता को काम के मैसेज देने में मदद मिलती है.
Enum
"connected" 
 इससे पता चलता है कि वीपीएन कनेक्शन चालू हो गया है.
"failure" 
 इससे पता चलता है कि वीपीएन कनेक्शन काम नहीं कर रहा है.
तरीके
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
यह कुकी, नया वीपीएन कॉन्फ़िगरेशन बनाती है. यह कॉन्फ़िगरेशन, उपयोगकर्ता के कई लॉगिन सेशन में बना रहता है.
पैरामीटर
- 
    नामस्ट्रिंग वीपीएन कॉन्फ़िगरेशन का नाम. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(id: string) => void - 
    आईडीस्ट्रिंग बनाए गए कॉन्फ़िगरेशन के लिए यूनीक आईडी या गड़बड़ी होने पर undefined.
 
- 
    
रिटर्न
- 
            Promise<string> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
यह एक्सटेंशन की ओर से बनाए गए वीपीएन कॉन्फ़िगरेशन को मिटा देता है.
पैरामीटर
- 
    आईडीस्ट्रिंग वीपीएन कॉन्फ़िगरेशन का वह आईडी जिसे मिटाना है. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
यह कुकी, प्लैटफ़ॉर्म को वीपीएन सेशन की स्थिति के बारे में सूचना देती है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- 
    राज्यवीपीएन क्लाइंट के वीपीएन सेशन की स्थिति. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
यह वीपीएन सेशन के लिए बनाई गई टनल के ज़रिए आईपी पैकेट भेजता है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- 
    डेटाArrayBuffer आईपी पैकेट को प्लैटफ़ॉर्म पर भेजा जाना है. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
यह कुकी, वीपीएन सेशन के लिए पैरामीटर सेट करती है. इसे प्लैटफ़ॉर्म से "connected" मिलने के तुरंत बाद कॉल किया जाना चाहिए. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- 
    पैरामीटरवीपीएन सेशन के लिए पैरामीटर. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 96 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
इवेंट
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब प्लैटफ़ॉर्म एक्सटेंशन के लिए कोई कॉन्फ़िगरेशन बनाता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(id: string, name: string, data: object) => void - 
    आईडीस्ट्रिंग 
- 
    नामस्ट्रिंग 
- 
    डेटाऑब्जेक्ट 
 
- 
    
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन से बनाए गए कॉन्फ़िगरेशन को प्लैटफ़ॉर्म हटा देता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(id: string) => void - 
    आईडीस्ट्रिंग 
 
- 
    
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन के मालिकाना हक वाले वीपीएन सेशन के लिए, टनल के ज़रिए कोई आईपी पैकेट मिलता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(data: ArrayBuffer) => void - 
    डेटाArrayBuffer 
 
- 
    
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब एक्सटेंशन के मालिकाना हक वाले वीपीएन कॉन्फ़िगरेशन के लिए, प्लैटफ़ॉर्म से कोई मैसेज मिलता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(id: string, message: PlatformMessage, error: string) => void - 
    आईडीस्ट्रिंग 
- 
    मैसेज
- 
    गड़बड़ीस्ट्रिंग 
 
- 
    
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
यह तब ट्रिगर होता है, जब एक्सटेंशन के लिए कोई यूज़र इंटरफ़ेस (यूआई) इवेंट होता है. यूज़र इंटरफ़ेस (यूआई) इवेंट, प्लैटफ़ॉर्म से मिलने वाले ऐसे सिग्नल होते हैं जो ऐप्लिकेशन को यह बताते हैं कि उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) डायलॉग दिखाना है.