توضیحات
از chrome.vpnProvider
API برای پیاده سازی یک سرویس گیرنده VPN استفاده کنید.
مجوزها
vpnProvider
در دسترس بودن
استفاده
استفاده معمولی از 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
"متصل" "قطع" "خطا" "linkDown" "لینک آپ" "لینک تغییر کرد" "تعلیق" "رزومه"
نشان می دهد که پیکربندی VPN متصل است.
نشان می دهد که پیکربندی VPN قطع شده است.
نشان می دهد که خطایی در اتصال VPN رخ داده است، به عنوان مثال یک مهلت زمانی. شرح خطا به عنوان آرگومان خطا به onPlatformMessage داده می شود.
نشان می دهد که اتصال شبکه فیزیکی پیش فرض قطع شده است.
نشان می دهد که اتصال شبکه فیزیکی پیش فرض پشتیبان گیری شده است.
نشان می دهد که اتصال شبکه فیزیکی پیش فرض تغییر کرده است، به عنوان مثال wifi->mobile.
نشان می دهد که سیستم عامل در حال آماده شدن برای تعلیق است، بنابراین VPN باید اتصال خود را قطع کند. تمدید تضمینی برای دریافت این رویداد قبل از تعلیق نیست.
نشان می دهد که سیستم عامل از سر گرفته شده است و کاربر دوباره وارد سیستم شده است، بنابراین VPN باید سعی کند دوباره متصل شود.
UIEvent
enum توسط پلتفرم برای نشان دادن رویدادی که onUIEvent
را راه اندازی کرده است استفاده می شود.
Enum
"showAddDialog" "showConfigureDialog"
درخواست می کند که سرویس گیرنده VPN کادر گفتگوی پیکربندی افزودن را به کاربر نشان دهد.
درخواست می کند که سرویس گیرنده 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
- رویداد
- شناسه
رشته اختیاری