ब्यौरा
वीपीएन क्लाइंट लागू करने के लिए, 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
प्रॉपर्टी
-
पता
स्ट्रिंग
सीआईडीआर नोटेशन में वीपीएन इंटरफ़ेस का आईपी पता. फ़िलहाल, आईपीवी4 सिर्फ़ इस मोड का इस्तेमाल करता है.
-
broadcastAddress
स्ट्रिंग ज़रूरी नहीं
वीपीएन इंटरफ़ेस के लिए ब्रॉडकास्ट पता. (डिफ़ॉल्ट: आईपी पते और मास्क से काटा गया)
-
dnsServers
स्ट्रिंग[]
डीएनएस सर्वर के लिए आईपी की सूची.
-
domainSearch
स्ट्रिंग[] ज़रूरी नहीं
खोज डोमेन की सूची. (डिफ़ॉल्ट: कोई खोज डोमेन नहीं)
-
exclusionList
स्ट्रिंग[]
टनल से, सीआईडीआर नोटेशन में मौजूद आईपी ब्लॉक की सूची में नेटवर्क ट्रैफ़िक को शामिल न करें. इसका इस्तेमाल, वीपीएन सर्वर पर आने वाले और उससे आने वाले ट्रैफ़िक को बायपास करने के लिए किया जा सकता है. जब किसी गंतव्य से कई नियम मेल खाते हैं, तो मेल खाने वाला सबसे लंबा प्रीफ़िक्स जीतता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList +IncludeList) सूची में ऐसे डुप्लीकेट एंट्री हटा दिए जाते हैं. साथ ही, सटीक डुप्लीकेट एंट्री के बारे में नहीं बताया जाता.
-
inclusionList
स्ट्रिंग[]
टनल के सीआईडीआर नोटेशन में, आईपी ब्लॉक की सूची में नेटवर्क ट्रैफ़िक शामिल करें. इस पैरामीटर का इस्तेमाल, स्प्लिट टनल सेट अप करने के लिए किया जा सकता है. डिफ़ॉल्ट रूप से, सुरंग पर कोई ट्रैफ़िक नहीं भेजा जाता. "0.0.0.0/0" एंट्री जोड़ना लिंक करने पर, सभी उपयोगकर्ता ट्रैफ़िक टनल पर रीडायरेक्ट हो जाते हैं. जब किसी गंतव्य से कई नियम मेल खाते हैं, तो मेल खाने वाला सबसे लंबा प्रीफ़िक्स जीतता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. एक साथ रखी गई (exclusionList +IncludeList) सूची में ऐसे डुप्लीकेट एंट्री हटा दिए जाते हैं. साथ ही, सटीक डुप्लीकेट एंट्री के बारे में नहीं बताया जाता.
-
mtu
स्ट्रिंग ज़रूरी नहीं
वीपीएन इंटरफ़ेस के लिए MTU सेटिंग. (डिफ़ॉल्ट: 1500 बाइट)
-
फिर से कनेक्ट करें
स्ट्रिंग ज़रूरी नहीं
Chrome 51 और उसके बाद वाले वर्शन के लिएवीपीएन एक्सटेंशन, अपने-आप फिर से कनेक्शन लागू करता है या नहीं.
अगर सही है, तो
linkDown
,linkUp
,linkChanged
,suspend
, औरresume
प्लैटफ़ॉर्म मैसेज का इस्तेमाल, अलग-अलग इवेंट के सिग्नल देने के लिए किया जाएगा. गलत होने पर, नेटवर्क टोपोलॉजी में बदलाव होने पर सिस्टम, वीपीएन को हर हाल में डिसकनेक्ट कर देगा. इसके बाद, उपयोगकर्ता को मैन्युअल तरीके से फिर से कनेक्ट करना होगा. (डिफ़ॉल्ट: गलत)यह प्रॉपर्टी Chrome 51 में नई है; तो पुराने वर्शन में अपवाद जनरेट होगा. कोशिश करें/कैच करें कि इस सुविधा को शर्त के साथ चालू करने के लिए, ब्राउज़र पर काम करने वाली सुविधा का इस्तेमाल किया जा सकता है.
PlatformMessage
प्लैटफ़ॉर्म, ईनम का इस्तेमाल करके क्लाइंट को वीपीएन सेशन की स्थिति के बारे में बताता है.
Enum
"कनेक्ट है"
इससे पता चलता है कि वीपीएन कॉन्फ़िगरेशन कनेक्ट है.
"डिसकनेक्ट है"
इससे पता चलता है कि वीपीएन कॉन्फ़िगरेशन डिसकनेक्ट है.
"गड़बड़ी"
से पता चलता है कि वीपीएन कनेक्शन में कोई गड़बड़ी हुई है. जैसे, टाइम आउट हो जाना. गड़बड़ी की जानकारी, onPlatformMessage पर गड़बड़ी के तर्क के तौर पर दी जाती है.
"linkDown"
इसका मतलब है कि डिफ़ॉल्ट तौर पर सेट किया गया इंटरनेट कनेक्शन काम नहीं कर रहा है.
"linkUp"
से पता चलता है कि डिफ़ॉल्ट तौर पर सेट किए गए इंटरनेट कनेक्शन का बैक अप ले लिया गया है.
"linkChanged"
यह बताता है कि डिफ़ॉल्ट फ़िज़िकल नेटवर्क कनेक्शन बदला गया है. उदाहरण के लिए, वाई-फ़ाई->मोबाइल.
"सस्पेंड"
यह बताता है कि ओएस, निलंबित किए जाने की तैयारी कर रहा है. इसलिए, वीपीएन को अपना कनेक्शन बंद कर देना चाहिए. इस बात की कोई गारंटी नहीं है कि निलंबन से पहले, एक्सटेंशन को यह इवेंट मिलेगा.
"फिर से शुरू करें"
इससे पता चलता है कि ओएस को फिर से चालू कर दिया गया है और उपयोगकर्ता ने फिर से लॉग इन कर लिया है. इसलिए, वीपीएन को फिर से कनेक्ट करने की कोशिश करनी चाहिए.
UIEvent
ईनम का इस्तेमाल, onUIEvent
को ट्रिगर करने वाले इवेंट को दिखाने के लिए किया जाता है.
Enum
"showAddDialog"
अनुरोध करता है कि वीपीएन क्लाइंट, उपयोगकर्ता को कॉन्फ़िगरेशन जोड़ें डायलॉग बॉक्स दिखाए.
"showConfigureDialog"
अनुरोध करता है कि वीपीएन क्लाइंट, उपयोगकर्ता को कॉन्फ़िगरेशन सेटिंग वाला डायलॉग बॉक्स दिखाए.
VpnConnectionState
वीपीएन क्लाइंट, ईनम का इस्तेमाल प्लैटफ़ॉर्म की मौजूदा स्थिति के बारे में बताने के लिए करता है. इससे उपयोगकर्ता को काम के मैसेज देने में मदद मिलती है.
Enum
"कनेक्ट किया गया"
इससे पता चलता है कि वीपीएन कनेक्शन सही से काम कर रहा था.
"failure"
बताता है कि वीपीएन कनेक्शन काम नहीं कर रहा है.
तरीके
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
नया वीपीएन कॉन्फ़िगरेशन बनाता है, जो उपयोगकर्ता के एक से ज़्यादा लॉगिन सेशन पर बना रहता है.
पैरामीटर
-
नाम
स्ट्रिंग
वीपीएन कॉन्फ़िगरेशन का नाम.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(id: string) => void
-
आईडी
स्ट्रिंग
बनाए गए कॉन्फ़िगरेशन के लिए यूनीक आईडी या फ़ेल होने पर
undefined
.
-
रिटर्न
-
प्रॉमिस<string>
Chrome 96 और उसके बाद के वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
एक्सटेंशन से बनाए गए वीपीएन कॉन्फ़िगरेशन को बंद कर देता है.
पैरामीटर
-
आईडी
स्ट्रिंग
मिटाए जाने वाले वीपीएन कॉन्फ़िगरेशन का आईडी.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
प्रॉमिस<void>
Chrome 96 और उसके बाद के वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
प्लैटफ़ॉर्म को वीपीएन सेशन की स्थिति की सूचना देता है. ऐसा सिर्फ़ तब किया जा सकता है, जब एक्सटेंशन का मालिकाना हक वीपीएन सेशन के पास हो.
पैरामीटर
-
राज्य
वीपीएन क्लाइंट के वीपीएन सेशन की स्थिति.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
प्रॉमिस<void>
Chrome 96 और उसके बाद के वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
यह वीपीएन सेशन के लिए बनाए गए टनल के ज़रिए एक आईपी पैकेट भेजता है. ऐसा सिर्फ़ तब किया जा सकता है, जब एक्सटेंशन का मालिकाना हक वीपीएन सेशन के पास हो.
पैरामीटर
-
डेटा
ArrayBuffer
प्लैटफ़ॉर्म पर भेजा जाने वाला आईपी पैकेट.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
प्रॉमिस<void>
Chrome 96 और उसके बाद के वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
वीपीएन सेशन के लिए पैरामीटर सेट करता है. प्लैटफ़ॉर्म से "connected"
मिलने के तुरंत बाद यह कॉल किया जाना चाहिए. ऐसा सिर्फ़ तब किया जा सकता है, जब एक्सटेंशन का मालिकाना हक वीपीएन सेशन के पास हो.
पैरामीटर
-
पैरामीटर
वीपीएन सेशन के पैरामीटर.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
प्रॉमिस<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,
)
एक्सटेंशन के लिए यूज़र इंटरफ़ेस (यूआई) इवेंट होने पर ट्रिगर होता है. यूज़र इंटरफ़ेस (यूआई) इवेंट, प्लैटफ़ॉर्म से मिलने वाले सिग्नल होते हैं. इनसे ऐप्लिकेशन को यह पता चलता है कि उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) डायलॉग दिखाना है.