chrome.vpnProvider

شرح

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

مجوزها

vpnProvider

دسترسی

فقط Chrome 43+ ChromeOS

مفاهیم و کاربرد

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

  • با فراخوانی createConfig() تنظیمات VPN را ایجاد کنید. پیکربندی 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 داده می شود.

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

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

"لینک تغییر کرد"
نشان می دهد که اتصال شبکه فیزیکی پیش فرض تغییر کرده است، به عنوان مثال 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 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوع که به callback ارسال می شود حل می شود.

destroyConfig()

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

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

مولفه های

  • شناسه

    رشته

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

  • پاسخ به تماس

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

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

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

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

notifyConnectionStateChanged()

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

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

مولفه های

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

  • پاسخ به تماس

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

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

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

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

sendPacket()

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

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

مولفه های

  • داده ها

    ArrayBuffer

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

  • پاسخ به تماس

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

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

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

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

setParameters()

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

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

مولفه های

  • مولفه های

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

  • پاسخ به تماس

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

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

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 96+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوع که به 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