ब्यौरा
वीपीएन क्लाइंट लागू करने के लिए, chrome.vpnProvider
एपीआई का इस्तेमाल करें.
अनुमतियां
vpnProvider
उपलब्धता
कॉन्सेप्ट और इस्तेमाल
chrome.vpnProvider
का इस्तेमाल आम तौर पर इस तरह किया जाता है:
createConfig()
को कॉल करके, वीपीएन कॉन्फ़िगरेशन बनाएं. वीपीएन कॉन्फ़िगरेशन, ChromeOS के यूज़र इंटरफ़ेस (यूआई) में उपयोगकर्ता को दिखने वाली एक स्थायी एंट्री होती है. उपयोगकर्ता, सूची से वीपीएन कॉन्फ़िगरेशन चुन सकता है. इसके बाद, वह इससे कनेक्ट या डिसकनेक्ट कर सकता है.onPlatformMessage
,onPacketReceived
, औरonConfigRemoved
इवेंट में लिसनर जोड़ें.जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से कनेक्ट होता है, तो उसे
onPlatformMessage
,"connected"
मैसेज के साथ मिलेगा."connected"
और"disconnected"
मैसेज के बीच के समय को "वीपीएन सेशन" कहा जाता है. इस समयावधि में, जिस एक्सटेंशन को मैसेज मिलता है उसे वीपीएन सेशन का मालिक कहा जाता है.वीपीएन सर्वर से कनेक्शन शुरू करें और वीपीएन क्लाइंट शुरू करें.
setParameters()
को कॉल करके, कनेक्शन के पैरामीटर सेट करें.notifyConnectionStateChanged()
को कॉल करके,"connected"
के तौर पर कनेक्ट होने की स्थिति की सूचना दें.जब ऊपर दिए गए चरण बिना किसी गड़बड़ी के पूरे हो जाते हैं, तो ChromeOS के नेटवर्क स्टैक के लिए एक वर्चुअल टनल बन जाती है.
sendPacket()
को कॉल करके, आईपी पैकेट को टनल के ज़रिए भेजा जा सकता है. साथ ही, ChromeOS डिवाइस पर मौजूद किसी भी पैकेट कोonPacketReceived
इवेंट हैंडलर का इस्तेमाल करके रिसीव किया जाएगा.जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से डिसकनेक्ट हो जाता है, तब
onPlatformMessage
को"disconnected"
मैसेज के साथ ट्रिगर किया जाएगा.अगर वीपीएन कॉन्फ़िगरेशन की अब ज़रूरत नहीं है, तो
destroyConfig()
को कॉल करके इसे बंद किया जा सकता है.
टाइप
Parameters
प्रॉपर्टी
- पता
स्ट्रिंग
सीआईडीआर नोटेशन में वीपीएन इंटरफ़ेस के लिए आईपी पता. फ़िलहाल, सिर्फ़ IPv4 मोड का इस्तेमाल किया जा सकता है.
- broadcastAddress
string ज़रूरी नहीं है
वीपीएन इंटरफ़ेस के लिए ब्रॉडकास्ट पता. (डिफ़ॉल्ट: आईपी पते और मास्क से अनुमान लगाया जाता है)
- dnsServers
string[]
डीएनएस सर्वर के लिए आईपी पतों की सूची.
- domainSearch
string[] ज़रूरी नहीं है
खोज के लिए इस्तेमाल किए जाने वाले डोमेन की सूची. (डिफ़ॉल्ट: कोई सर्च डोमेन नहीं)
- exclusionList
string[]
सीआईडीआर नोटेशन में आईपी ब्लॉक की सूची में मौजूद नेटवर्क ट्रैफ़िक को टनल से बाहर रखें. इसका इस्तेमाल, वीपीएन सर्वर से आने-जाने वाले ट्रैफ़िक को बायपास करने के लिए किया जा सकता है. जब कई नियम किसी डेस्टिनेशन से मेल खाते हैं, तो सबसे लंबे मैचिंग प्रीफ़िक्स वाला नियम लागू होता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList + inclusionList) सूची में मौजूद ऐसे डुप्लीकेट हटा दिए जाते हैं. साथ ही, यह तय नहीं किया जाता कि कौनसी डुप्लीकेट एंट्री हटाई जाएगी.
- inclusionList
string[]
टनल के लिए, सीआईडीआर नोटेशन में आईपी ब्लॉक की सूची में नेटवर्क ट्रैफ़िक शामिल करें. इस पैरामीटर का इस्तेमाल, स्प्लिट टनल सेट अप करने के लिए किया जा सकता है. डिफ़ॉल्ट रूप से, किसी भी ट्रैफ़िक को टनल पर नहीं भेजा जाता है. इस सूची में "0.0.0.0/0" एंट्री जोड़ने से, उपयोगकर्ता का पूरा ट्रैफ़िक टनल पर रीडायरेक्ट हो जाता है. जब कई नियम किसी डेस्टिनेशन से मेल खाते हैं, तो सबसे लंबे मैचिंग प्रीफ़िक्स वाला नियम लागू होता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList + inclusionList) सूची में मौजूद ऐसे डुप्लीकेट हटा दिए जाते हैं. साथ ही, यह तय नहीं किया जाता कि कौनसी डुप्लीकेट एंट्री हटाई जाएगी.
- mtu
string ज़रूरी नहीं है
वीपीएन इंटरफ़ेस के लिए एमटीयू सेटिंग. (डिफ़ॉल्ट: 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,
): Promise<string>
यह कुकी, नया वीपीएन कॉन्फ़िगरेशन बनाती है. यह कॉन्फ़िगरेशन, उपयोगकर्ता के कई लॉगिन सेशन में बना रहता है.
पैरामीटर
- नाम
स्ट्रिंग
वीपीएन कॉन्फ़िगरेशन का नाम.
रिटर्न
-
Promise<string>
Chrome 96 और इसके बाद के वर्शन
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
): Promise<void>
यह एक्सटेंशन की ओर से बनाए गए वीपीएन कॉन्फ़िगरेशन को मिटा देता है.
पैरामीटर
- आईडी
स्ट्रिंग
वीपीएन कॉन्फ़िगरेशन का वह आईडी जिसे मिटाना है.
रिटर्न
-
Promise<void>
Chrome 96 और इसके बाद के वर्शन
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
): Promise<void>
यह कुकी, प्लैटफ़ॉर्म को वीपीएन सेशन की स्थिति के बारे में सूचना देती है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- राज्य
वीपीएन क्लाइंट के वीपीएन सेशन की स्थिति.
रिटर्न
-
Promise<void>
Chrome 96 और इसके बाद के वर्शन
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
): Promise<void>
यह वीपीएन सेशन के लिए बनाई गई टनल के ज़रिए आईपी पैकेट भेजता है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- डेटा
ArrayBuffer
आईपी पैकेट को प्लैटफ़ॉर्म पर भेजा जाना है.
रिटर्न
-
Promise<void>
Chrome 96 और इसके बाद के वर्शन
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
): Promise<void>
यह कुकी, वीपीएन सेशन के लिए पैरामीटर सेट करती है. इसे प्लैटफ़ॉर्म से "connected"
मिलने के तुरंत बाद कॉल किया जाना चाहिए. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.
पैरामीटर
- पैरामीटर
वीपीएन सेशन के लिए पैरामीटर.
रिटर्न
-
Promise<void>
Chrome 96 और इसके बाद के वर्शन
इवेंट
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,
)
यह तब ट्रिगर होता है, जब एक्सटेंशन के लिए कोई यूज़र इंटरफ़ेस (यूआई) इवेंट होता है. यूज़र इंटरफ़ेस (यूआई) इवेंट, प्लैटफ़ॉर्म से मिलने वाले ऐसे सिग्नल होते हैं जो ऐप्लिकेशन को यह बताते हैं कि उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) डायलॉग दिखाना है.