chrome.vpnProvider

توضیحات

از chrome.vpnProvider API برای پیاده سازی یک سرویس گیرنده VPN استفاده کنید.

مجوزها

vpnProvider

در دسترس بودن

فقط Chrome 43+ ChromeOS

استفاده

استفاده معمولی از vpnProvider به شرح زیر است:

  • تنظیمات VPN را با استفاده از روش createConfig ایجاد کنید. پیکربندی VPN ورودی دائمی است که در رابط کاربری ChromeOS بومی به کاربر نشان داده می‌شود. کاربر می تواند یک پیکربندی VPN را از یک لیست انتخاب کرده و به آن متصل شود یا از آن جدا شود.

  • شنوندگان را به رویدادهای onPlatformMessage ، onPacketReceived و onConfigRemoved اضافه کنید.

  • هنگامی که کاربر به پیکربندی VPN متصل می شود، onPlatformMessage با پیام "connected" دریافت می شود. ما به دوره بین پیام های "connected" و "disconnected" به عنوان یک جلسه VPN اشاره می کنیم. در این بازه زمانی، برنامه افزودنی که پیام را دریافت می کند، گفته می شود که صاحب جلسه VPN است.

  • اتصال به سرور VPN را آغاز کرده و سرویس گیرنده VPN را راه اندازی کنید.

  • پارامترهای اتصال را با استفاده از setParameters تنظیم کنید.

  • با استفاده از notifyConnectionStateChanged ، وضعیت اتصال را به عنوان "connected" اعلام کنید.

  • هنگامی که مراحل بالا بدون خطا انجام می شود، یک تونل مجازی در پشته شبکه ChromeOS ایجاد می شود. بسته‌های IP را می‌توان از طریق تونل با استفاده از sendPacket ارسال کرد و هر بسته‌ای که از دستگاه ChromeOS منشا می‌گیرد با استفاده از رویداد onPacketReceived دریافت می‌شود.

  • هنگامی که کاربر از پیکربندی VPN قطع می شود، onPlatformMessage با پیام "disconnected" فعال می شود.

  • اگر پیکربندی VPN دیگر ضروری نباشد، می توان آن را با استفاده از destroyConfig از بین برد.

انواع

Parameters

خواص

  • آدرس

    رشته

    آدرس IP برای رابط VPN در نماد CIDR. IPv4 در حال حاضر تنها حالت پشتیبانی شده است.

  • آدرس پخش

    رشته اختیاری

    آدرس پخش برای رابط VPN. (پیش‌فرض: برگرفته از آدرس IP و ماسک)

  • سرورهای dns

    رشته[]

    لیستی از IP ها برای سرورهای DNS.

  • جستجوی دامنه

    رشته[] اختیاری است

    لیستی از دامنه های جستجو (پیش‌فرض: بدون دامنه جستجو)

  • ExclusionList

    رشته[]

    ترافیک شبکه را به لیست بلوک های IP در نماد CIDR از تونل حذف کنید. این می تواند برای دور زدن ترافیک به و از سرور VPN استفاده شود. وقتی قوانین زیادی با یک مقصد مطابقت دارند، قاعده ای که طولانی ترین پیشوند تطبیق را دارد برنده می شود. ورودی هایی که با همان بلوک CIDR مطابقت دارند به عنوان موارد تکراری تلقی می شوند. این گونه موارد تکراری در فهرست ترکیبی (exclusionList + inclusionList) حذف می شوند و ورودی تکراری دقیقی که حذف می شود، تعریف نشده است.

  • inclusionList

    رشته[]

    ترافیک شبکه را به لیست بلوک های IP در نماد CIDR در تونل اضافه کنید. از این پارامتر می توان برای راه اندازی یک تونل اسپلیت استفاده کرد. به طور پیش فرض هیچ ترافیکی به سمت تونل هدایت نمی شود. با افزودن ورودی "0.0.0.0/0" به این لیست، تمام ترافیک کاربر به تونل هدایت می شود. وقتی قوانین زیادی با یک مقصد مطابقت دارند، قاعده ای که طولانی ترین پیشوند تطبیق را دارد برنده می شود. ورودی هایی که با همان بلوک CIDR مطابقت دارند به عنوان موارد تکراری تلقی می شوند. این گونه موارد تکراری در فهرست ترکیبی (exclusionList + inclusionList) حذف می شوند و ورودی تکراری دقیقی که حذف می شود، تعریف نشده است.

  • mtu

    رشته اختیاری

    تنظیم MTU برای رابط VPN. (پیش‌فرض: 1500 بایت)

  • دوباره وصل شوید

    رشته اختیاری

    Chrome 51+

    این که آیا افزونه VPN اتصال مجدد خودکار را اجرا می کند یا نه.

    اگر درست باشد، از پیام‌های پلتفرم linkDown ، linkUp ، linkChanged ، suspend و resume برای سیگنال دادن به رویدادهای مربوطه استفاده می‌شود. در صورت نادرست بودن، در صورت تغییر توپولوژی شبکه، سیستم به اجبار VPN را قطع می کند و کاربر باید دوباره به صورت دستی وصل شود. (پیش فرض: نادرست)

    این ویژگی در کروم 51 جدید است. در نسخه های قبلی یک استثنا ایجاد می کند. try/catch را می توان برای فعال کردن مشروط این ویژگی بر اساس پشتیبانی مرورگر استفاده کرد.

PlatformMessage

enum توسط پلتفرم برای اطلاع رسانی به مشتری از وضعیت جلسه VPN استفاده می شود.

Enum

"متصل"
نشان می دهد که پیکربندی VPN متصل است.

"قطع"
نشان می دهد که پیکربندی VPN قطع شده است.

"خطا"
نشان می دهد که خطایی در اتصال VPN رخ داده است، به عنوان مثال یک مهلت زمانی. شرح خطا به عنوان آرگومان خطا به onPlatformMessage داده می شود.

"linkDown"
نشان می دهد که اتصال شبکه فیزیکی پیش فرض قطع شده است.

"لینک آپ"
نشان می دهد که اتصال شبکه فیزیکی پیش فرض پشتیبان گیری شده است.

"لینک تغییر کرد"
نشان می دهد که اتصال شبکه فیزیکی پیش فرض تغییر کرده است، به عنوان مثال wifi->mobile.

"تعلیق"
نشان می دهد که سیستم عامل در حال آماده شدن برای تعلیق است، بنابراین VPN باید اتصال خود را قطع کند. تمدید تضمینی برای دریافت این رویداد قبل از تعلیق نیست.

"رزومه"
نشان می دهد که سیستم عامل از سر گرفته شده است و کاربر دوباره وارد سیستم شده است، بنابراین VPN باید سعی کند دوباره متصل شود.

UIEvent

enum توسط پلتفرم برای نشان دادن رویدادی که onUIEvent را راه اندازی کرده است استفاده می شود.

Enum

"showAddDialog"
درخواست می کند که سرویس گیرنده VPN کادر گفتگوی پیکربندی افزودن را به کاربر نشان دهد.

"showConfigureDialog"
درخواست می کند که سرویس گیرنده VPN کادر گفتگوی تنظیمات پیکربندی را به کاربر نشان دهد.

VpnConnectionState

enum توسط سرویس گیرنده VPN برای اطلاع رسانی وضعیت فعلی پلت فرم استفاده می شود. این به ارائه پیام های معنی دار به کاربر کمک می کند.

Enum

"متصل"
مشخص می کند که اتصال VPN موفقیت آمیز بوده است.

"شکست"
مشخص می کند که اتصال VPN ناموفق است.

روش ها

createConfig()

قول بده
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)

یک پیکربندی VPN جدید ایجاد می کند که در چندین جلسه ورود به سیستم کاربر ادامه دارد.

پارامترها

  • نام

    رشته

    نام پیکربندی VPN.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (id: string) => void

    • شناسه

      رشته

      یک شناسه منحصر به فرد برای پیکربندی ایجاد شده، یا undefined در صورت شکست.

برمی گرداند

  • قول<رشته>

    Chrome 96+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

destroyConfig()

قول بده
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)

پیکربندی VPN ایجاد شده توسط افزونه را از بین می برد.

پارامترها

  • شناسه

    رشته

    شناسه پیکربندی VPN برای از بین بردن.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    () => void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

notifyConnectionStateChanged()

قول بده
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)

وضعیت جلسه VPN را به پلت فرم اطلاع می دهد. این فقط زمانی موفق خواهد شد که جلسه VPN متعلق به برنامه افزودنی باشد.

پارامترها

  • وضعیت جلسه VPN مشتری VPN.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    () => void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

sendPacket()

قول بده
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)

یک بسته IP را از طریق تونل ایجاد شده برای جلسه VPN ارسال می کند. این فقط زمانی موفق خواهد شد که جلسه VPN متعلق به برنامه افزودنی باشد.

پارامترها

  • داده ها

    ArrayBuffer

    بسته IP برای ارسال به پلتفرم.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    () => void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

setParameters()

قول بده
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)

پارامترهای جلسه VPN را تنظیم می کند. این باید بلافاصله پس از دریافت "connected" از پلت فرم فراخوانی شود. این فقط زمانی موفق خواهد شد که جلسه VPN متعلق به برنامه افزودنی باشد.

پارامترها

  • پارامترها

    پارامترهای جلسه VPN

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    () => void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

رویدادها

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

هنگامی که یک بسته IP از طریق تونل برای جلسه VPN متعلق به برنامه افزودنی دریافت می شود، فعال می شود.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (data: ArrayBuffer) => void

    • داده ها

      ArrayBuffer

onPlatformMessage

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

هنگامی که پیامی از پلتفرم برای پیکربندی VPN متعلق به برنامه افزودنی دریافت می‌شود، فعال می‌شود.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

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

onUIEvent

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

هنگامی که یک رویداد UI برای برنامه افزودنی وجود دارد فعال می شود. رویدادهای رابط کاربری سیگنال‌هایی از پلتفرم هستند که به برنامه نشان می‌دهند که یک گفتگوی رابط کاربری باید به کاربر نشان داده شود.

پارامترها

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

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