توضیحات
از chrome.vpnProvider
API برای پیاده سازی یک سرویس گیرنده VPN استفاده کنید.
مجوزها
vpnProvider
در دسترس بودن
مفاهیم و کاربرد
استفاده معمولی از 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
"متصل" "قطع" "خطا" "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 و نسخه های جدیدتر پشتیبانی می شود، اما 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
- رویداد
- شناسه
رشته اختیاری