chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

ब्यौरा

वीपीएन क्लाइंट लागू करने के लिए, chrome.vpnProvider एपीआई का इस्तेमाल करें.

अनुमतियां

vpnProvider

उपलब्धता

Chrome 43 या इसके बाद का वर्शन सिर्फ़ ChromeOS के लिए

इस्तेमाल

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()

Promise
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: Promise<string>

यह कुकी, नया वीपीएन कॉन्फ़िगरेशन बनाती है. यह कॉन्फ़िगरेशन, उपयोगकर्ता के कई लॉगिन सेशन में बना रहता है.

पैरामीटर

  • नाम

    स्ट्रिंग

    वीपीएन कॉन्फ़िगरेशन का नाम.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    (id: string) => void

    • id

      स्ट्रिंग

      बनाए गए कॉन्फ़िगरेशन के लिए यूनीक आईडी या गड़बड़ी होने पर undefined.

रिटर्न

  • Promise<string>

    Chrome 96 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. कॉन्फ़िगरेशन बन जाने पर यह प्रॉमिस पूरा हो जाता है. अगर कोई गड़बड़ी होती है, तो यह प्रॉमिस अस्वीकार कर दिया जाता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

destroyConfig()

Promise
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

यह एक्सटेंशन की मदद से बनाए गए वीपीएन कॉन्फ़िगरेशन को मिटा देता है.

पैरामीटर

  • id

    स्ट्रिंग

    वीपीएन कॉन्फ़िगरेशन का वह आईडी जिसे मिटाना है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 96 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. कॉन्फ़िगरेशन बंद होने पर यह प्रॉमिस पूरा हो जाता है. अगर कोई गड़बड़ी होती है, तो यह प्रॉमिस अस्वीकार कर दिया जाता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

notifyConnectionStateChanged()

Promise
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: Promise<void>

यह कुकी, प्लैटफ़ॉर्म को वीपीएन सेशन की स्थिति के बारे में सूचना देती है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.

पैरामीटर

  • राज्य

    वीपीएन क्लाइंट के वीपीएन सेशन की स्थिति.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 96 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. सूचना पूरी होने पर यह प्रॉमिस पूरा हो जाता है. अगर कोई गड़बड़ी होती है, तो यह प्रॉमिस अस्वीकार कर दिया जाता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

sendPacket()

Promise
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: Promise<void>

यह वीपीएन सेशन के लिए बनाई गई टनल के ज़रिए, आईपी पैकेट भेजता है. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.

पैरामीटर

  • डेटा

    ArrayBuffer

    आईपी पैकेट, जिसे प्लैटफ़ॉर्म पर भेजा जाना है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 96 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. पैकेट भेजे जाने पर यह प्रॉमिस पूरा हो जाता है. अगर कोई गड़बड़ी होती है, तो यह प्रॉमिस अस्वीकार कर दिया जाता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

setParameters()

Promise
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: Promise<void>

यह कुकी, वीपीएन सेशन के लिए पैरामीटर सेट करती है. इस फ़ंक्शन को, प्लैटफ़ॉर्म से "connected" मिलने के तुरंत बाद कॉल किया जाना चाहिए. यह सिर्फ़ तब काम करेगा, जब वीपीएन सेशन का मालिकाना हक एक्सटेंशन के पास हो.

पैरामीटर

  • पैरामीटर

    वीपीएन सेशन के पैरामीटर.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 96 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. पैरामीटर सेट होने पर यह प्रॉमिस पूरा हो जाता है. अगर कोई गड़बड़ी होती है, तो यह प्रॉमिस अस्वीकार कर दिया जाता है.

    प्रॉमिस सिर्फ़ Manifest 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,
)

यह तब ट्रिगर होता है, जब एक्सटेंशन के लिए कोई यूज़र इंटरफ़ेस (यूआई) इवेंट होता है. यूज़र इंटरफ़ेस (यूआई) इवेंट, प्लैटफ़ॉर्म से मिलने वाले ऐसे सिग्नल होते हैं जो ऐप्लिकेशन को यह बताते हैं कि उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) डायलॉग दिखाना है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (event: UIEvent, id?: string) => void

    • इवेंट
    • id

      string ज़रूरी नहीं है