chrome.vpnProvider

ब्यौरा

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

अनुमतियां

vpnProvider

उपलब्धता

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

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

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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

    • इवेंट
    • आईडी

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