ब्यौरा
वीपीएन क्लाइंट को लागू करने के लिए, chrome.vpnProvider
API का इस्तेमाल करें.
अनुमतियां
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
स्ट्रिंग ज़रूरी नहीं
वीपीएन इंटरफ़ेस के लिए ब्रॉडकास्ट का पता. (डिफ़ॉल्ट: IP पते और मास्क से डुप्लीकेट)
-
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"
यह बताता है कि डिफ़ॉल्ट फ़िज़िकल नेटवर्क कनेक्शन बदल गया है, जैसे कि वाई-फ़ाई->मोबाइल.
"suspend"
इससे पता चलता है कि ओएस को निलंबित करने की तैयारी की जा रही है. इसलिए, वीपीएन अपना कनेक्शन बंद कर देगा. इस बात की कोई गारंटी नहीं है कि निलंबन से पहले, एक्सटेंशन को यह इवेंट मिलेगा.
"resume"
यह बताता है कि ओएस फिर से शुरू हो गया है और उपयोगकर्ता ने वापस लॉग इन कर लिया है. इसलिए, वीपीएन को फिर से कनेक्ट करने की कोशिश करनी चाहिए.
UIEvent
प्लैटफ़ॉर्म, onUIEvent
को ट्रिगर करने वाले इवेंट को दिखाने के लिए एनम का इस्तेमाल करता है.
Enum
"showAddDialog"
यह अनुरोध करता है कि वीपीएन क्लाइंट, उपयोगकर्ता को कॉन्फ़िगरेशन जोड़ें वाला डायलॉग बॉक्स दिखाए.
"showConfigureDialog"
यह अनुरोध करता है कि वीपीएन क्लाइंट, उपयोगकर्ता को कॉन्फ़िगरेशन सेटिंग डायलॉग बॉक्स दिखाए.
VpnConnectionState
वीपीएन क्लाइंट, एनम का इस्तेमाल प्लैटफ़ॉर्म की मौजूदा स्थिति की जानकारी देने के लिए करता है. इससे उपयोगकर्ता को काम के मैसेज दिखाने में मदद मिलती है.
Enum
"कनेक्ट किया गया"
बताता है कि वीपीएन कनेक्शन सफल रहा.
"failure"
तय करता है कि वीपीएन कनेक्शन काम नहीं कर रहा है.
तरीके
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
नया वीपीएन कॉन्फ़िगरेशन बनाता है, जो उपयोगकर्ता के कई लॉगिन सेशन के दौरान बना रहता है.
पैरामीटर
-
नाम
स्ट्रिंग
वीपीएन कॉन्फ़िगरेशन का नाम.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(id: string)=>void
-
id
स्ट्रिंग
बनाए गए कॉन्फ़िगरेशन के लिए यूनीक आईडी या पूरा न होने पर
undefined
.
-
रिटर्न
-
प्रॉमिस<string>
Chrome 96 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
एक्सटेंशन से बनाए गए वीपीएन कॉन्फ़िगरेशन को बंद कर देता है.
पैरामीटर
-
id
स्ट्रिंग
खत्म करने के लिए वीपीएन कॉन्फ़िगरेशन का आईडी.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
प्लैटफ़ॉर्म के लिए वीपीएन सेशन की स्थिति की सूचना देता है. ऐसा तभी होगा, जब एक्सटेंशन के पास वीपीएन सेशन का मालिकाना हक होगा.
पैरामीटर
-
state
वीपीएन क्लाइंट के वीपीएन सेशन की स्थिति.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
यह वीपीएन सेशन के लिए बनाए गए टनल के ज़रिए आईपी पैकेट भेजता है. ऐसा तभी होगा, जब एक्सटेंशन के पास वीपीएन सेशन का मालिकाना हक होगा.
पैरामीटर
-
डेटा
ArrayBuffer
प्लैटफ़ॉर्म पर भेजा जाने वाला आईपी पैकेट.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
वीपीएन सेशन के लिए पैरामीटर सेट करता है. प्लैटफ़ॉर्म से "connected"
मिलते ही इसे कॉल किया जाना चाहिए. ऐसा तभी होगा, जब एक्सटेंशन के पास वीपीएन सेशन का मालिकाना हक होगा.
पैरामीटर
-
पैरामीटर
वीपीएन सेशन के लिए पैरामीटर.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:()=>void
रिटर्न
-
Promise<void>
Chrome 96 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
इवेंट
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
तब ट्रिगर होता है, जब एक्सटेंशन के लिए प्लैटफ़ॉर्म से कोई कॉन्फ़िगरेशन बनाया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(id: string,name: string,data: object)=>void
-
id
स्ट्रिंग
-
नाम
स्ट्रिंग
-
डेटा
ऑब्जेक्ट
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
तब ट्रिगर होता है, जब एक्सटेंशन से बनाए गए कॉन्फ़िगरेशन को प्लैटफ़ॉर्म से हटा दिया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(id: string)=>void
-
id
स्ट्रिंग
-
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
-
id
स्ट्रिंग
-
ग्राहक का मैसेज
-
गड़बड़ी
स्ट्रिंग
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
तब ट्रिगर होता है, जब एक्सटेंशन के लिए कोई यूज़र इंटरफ़ेस (यूआई) इवेंट हो. यूज़र इंटरफ़ेस (यूआई) इवेंट, प्लैटफ़ॉर्म से मिलने वाले सिग्नल होते हैं. इनसे ऐप्लिकेशन को पता चलता है कि उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) डायलॉग दिखाना ज़रूरी है.