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

प्रॉपर्टी

  • पता

    स्ट्रिंग

    सीआईडीआर नोटेशन में वीपीएन इंटरफ़ेस का आईपी पता. फ़िलहाल, आईपीवी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,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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

    • इवेंट
    • आईडी

      स्ट्रिंग ज़रूरी नहीं