browser.vpnProvider

ब्यौरा

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

अनुमतियां

vpnProvider

उपलब्धता

Chrome 43 और इसके बाद के वर्शन Chrome 148 से browser.* सिर्फ़ ChromeOS के लिए

कॉन्सेप्ट और इस्तेमाल

browser.vpnProvider का इस्तेमाल आम तौर पर इस तरह किया जाता है:

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

  • onPlatformMessage, onPacketReceived, और onConfigRemoved इवेंट में लिसनर जोड़ें.

  • जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से कनेक्ट करेगा, तो onPlatformMessage को "connected" मैसेज मिलेगा. "connected" और "disconnected" मैसेज के बीच की अवधि को "वीपीएन सेशन" कहा जाता है. इस समयावधि के दौरान, मैसेज पाने वाले एक्सटेंशन को वीपीएन सेशन का मालिक माना जाता है.

  • वीपीएन सर्वर से कनेक्शन शुरू करें और वीपीएन क्लाइंट को चालू करें.

  • setParameters() को कॉल करके, कनेक्शन के पैरामीटर सेट करें.

  • notifyConnectionStateChanged() को कॉल करके, कनेक्शन की स्थिति को "connected" के तौर पर सेट करें.

  • जब पिछले चरण बिना किसी गड़बड़ी के पूरे हो जाते हैं, तो ChromeOS के नेटवर्क स्टैक के लिए एक वर्चुअल टनल बन जाती है. sendPacket() को कॉल करके, टनल के ज़रिए आईपी पैकेट भेजे जा सकते हैं. साथ ही, ChromeOS डिवाइस से भेजे गए किसी भी पैकेट को onPacketReceived इवेंट हैंडलर का इस्तेमाल करके पाया जा सकता है.

  • जब उपयोगकर्ता वीपीएन कॉन्फ़िगरेशन से डिसकनेक्ट करता है, तो "disconnected" मैसेज के साथ onPlatformMessage ट्रिगर होगा.

  • अगर वीपीएन कॉन्फ़िगरेशन की ज़रूरत नहीं है, तो destroyConfig() को कॉल करके इसे मिटाया जा सकता है.

टाइप

Parameters

प्रॉपर्टी

  • पता

    स्ट्रिंग

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

  • broadcastAddress

    string ज़रूरी नहीं

    वीपीएन इंटरफ़ेस के लिए ब्रॉडकास्ट पता. (डिफ़ॉल्ट: आईपी पते और मास्क से पता लगाया गया)

  • dnsServers

    string[]

    डीएनएस सर्वर के आईपी की सूची.

  • domainSearch

    string[] ज़रूरी नहीं

    खोज के लिए इस्तेमाल किए जाने वाले डोमेन की सूची. (डिफ़ॉल्ट: कोई सर्च डोमेन नहीं)

  • exclusionList

    string[]

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

  • inclusionList

    string[]

    टनल के लिए, सीआईडीआर नोटेशन में आईपी ब्लॉक की सूची में नेटवर्क ट्रैफ़िक शामिल करें. इस पैरामीटर का इस्तेमाल, स्प्लिट टनल सेट अप करने के लिए किया जा सकता है. डिफ़ॉल्ट रूप से, कोई भी ट्रैफ़िक टनल पर नहीं भेजा जाता. इस सूची में "0.0.0.0/0" एंट्री जोड़ने पर, उपयोगकर्ता का पूरा ट्रैफ़िक टनल पर रीडायरेक्ट हो जाता है. जब कई नियम किसी डेस्टिनेशन से मैच करते हैं, तो सबसे लंबे मैचिंग प्रीफ़िक्स वाला नियम लागू होता है. एक ही सीआईडीआर ब्लॉक से जुड़ी एंट्री को डुप्लीकेट माना जाता है. शामिल और बाहर रखी गई सूचियों को मिलाकर बनाई गई सूची में मौजूद डुप्लीकेट एंट्री को हटा दिया जाता है. हालांकि, यह तय नहीं होता कि कौनसी डुप्लीकेट एंट्री हटाई जाएगी.

  • mtu

    string ज़रूरी नहीं

    वीपीएन इंटरफ़ेस के लिए एमटीयू सेटिंग. (डिफ़ॉल्ट: 1,500 बाइट)

  • फिर से कनेक्ट करें

    string ज़रूरी नहीं

    Chrome 51 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*

    वीपीएन एक्सटेंशन, अपने-आप फिर से कनेक्ट होने की सुविधा लागू करता है या नहीं.

    अगर यह वैल्यू 'सही है' पर सेट है, तो 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 का इस्तेमाल करके प्लैटफ़ॉर्म को अपनी मौजूदा स्थिति की जानकारी देता है. इससे उपयोगकर्ता को काम के मैसेज देने में मदद मिलती है.

Enum

"connected"
इससे पता चलता है कि वीपीएन कनेक्शन चालू हो गया है.

"failure"
इससे पता चलता है कि वीपीएन कनेक्शन नहीं बन पाया.

तरीके

createConfig()

browser.vpnProvider.createConfig(
  name: string,
)
: Promise<string>

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

पैरामीटर

  • नाम

    स्ट्रिंग

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

रिटर्न

  • Promise<string>

    Chrome 96+ Chrome 148 से browser.*

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

destroyConfig()

browser.vpnProvider.destroyConfig(
  id: string,
)
: Promise<void>

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

पैरामीटर

  • आईडी

    स्ट्रिंग

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

रिटर्न

  • वादा<शून्य>

    Chrome 96+ Chrome 148 से browser.*

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

notifyConnectionStateChanged()

browser.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
)
: Promise<void>

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

पैरामीटर

  • राज्य

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

रिटर्न

  • वादा<शून्य>

    Chrome 96+ Chrome 148 से browser.*

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

sendPacket()

browser.vpnProvider.sendPacket(
  data: ArrayBuffer,
)
: Promise<void>

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

पैरामीटर

  • डेटा

    ArrayBuffer

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

रिटर्न

  • वादा<शून्य>

    Chrome 96+ Chrome 148 से browser.*

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

setParameters()

browser.vpnProvider.setParameters(
  parameters: Parameters,
)
: Promise<void>

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

पैरामीटर

रिटर्न

  • वादा<शून्य>

    Chrome 96+ Chrome 148 से browser.*

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

इवेंट

onConfigCreated

browser.vpnProvider.onConfigCreated.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (id: string, name: string, data: object) => void

    • आईडी

      स्ट्रिंग

    • नाम

      स्ट्रिंग

    • डेटा

      ऑब्जेक्ट

onConfigRemoved

browser.vpnProvider.onConfigRemoved.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (id: string) => void

    • आईडी

      स्ट्रिंग

onPacketReceived

browser.vpnProvider.onPacketReceived.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (data: ArrayBuffer) => void

    • डेटा

      ArrayBuffer

onPlatformMessage

browser.vpnProvider.onPlatformMessage.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (id: string, message: PlatformMessage, error: string) => void

    • आईडी

      स्ट्रिंग

    • मैसेज
    • गड़बड़ी

      स्ट्रिंग

onUIEvent

browser.vpnProvider.onUIEvent.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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

    • इवेंट
    • आईडी

      string ज़रूरी नहीं