refresh date: 2026-09-25 robots: noindex
شرح
از chrome.vpnProvider API برای پیادهسازی کلاینت VPN استفاده کنید.
اجازهها
vpnProviderدردسترس بودن
کاربرد
استفاده معمول از vpnProvider بهصورت زیر است:
بااستفاده از روش
createConfig، پیکربندیهای ویپیان ایجاد کنید. پیکربندی VPN ورودی پایداری است که در میانای کاربری ChromeOS بومی به کاربر نشان داده میشود. کاربر میتواند پیکربندی VPN را از فهرست انتخاب کند و به آن متصل شود یا اتصالش را قطع کند.شنوندگان را به رویدادهای
onPlatformMessage،onPacketReceived، وonConfigRemovedاضافه کنید.وقتی کاربر به پیکربندی VPN متصل میشود،
onPlatformMessageبا پیام"connected"دریافت خواهد شد. به دوره بین پیامهای"connected"و"disconnected"جلسه VPN میگوییم. در این دوره زمانی، گفته میشود افزونهای که پیام را دریافت میکند مالک جلسه VPN است.اتصال به سرور ویپیان را آغاز کنید و کارخواه ویپیان را راهاندازی کنید.
پارامترهای اتصال را بااستفاده از
setParametersتنظیم کنید.وضعیت اتصال را بااستفاده از
notifyConnectionStateChangedبهعنوان"connected"اعلام کنید.وقتی مراحل بالا بدون خطا تکمیل شود، تونلی مجازی به پشته شبکه ChromeOS ایجاد میشود. بستههای IP را میتوان بااستفاده از
sendPacketازطریق تونل ارسال کرد و هر بستهای که از دستگاه ChromeOS منشأ میگیرد بااستفاده از رویدادonPacketReceivedدریافت خواهد شد.وقتی کاربر از پیکربندی VPN قطع میشود،
onPlatformMessageبا پیام"disconnected"فعال میشود.اگر پیکربندی VPN دیگر لازم نباشد، میتوان آن را بااستفاده از
destroyConfigازبین برد.
انواع
Parameters
مشخصات
-
نشانی
رشته
نشانی IP برای میانای VPN در نماد CIDR. درحالحاضر IPv4 تنها حالت پشتیبانیشده است.
-
broadcastAddress
رشته اختیاری
آدرس شبکه همهفرستی برای میانای VPN. (پیشفرض: از نشانی IP و ماسک استنتاج شده است)
-
dnsServers
string[]
فهرستی از نشانیهای IP برای سرورهای ساناد.
-
domainSearch
رشته[] اختیاری
فهرستی از دامنههای جستجو. (پیشفرض: بدون دامنه جستجو)
-
exclusionList
string[]
ترافیک شبکه به فهرست بلوکهای IP در نماد CIDR را از تونل مستثنی کنید. از این گزینه میتوان برای دور زدن ترافیک به و از سرور VPN استفاده کرد. وقتی قوانین زیادی با مقصد مطابقت داشته باشد، قانونی که طولانیترین پیشوند منطبق را داشته باشد برنده میشود. ورودیهایی که با بلوک CIDR یکسانی مطابقت دارند بهعنوان تکراری درنظر گرفته میشوند. این موارد تکراری در فهرست مرتبشده (exclusionList + inclusionList) حذف میشوند و ورودی تکراری دقیقی که حذف خواهد شد تعریف نشده است.
-
inclusionList
string[]
ترافیک شبکه را به فهرست بلوکهای IP در نماد CIDR به تونل اضافه کنید. از این پارامتر میتوان برای راهاندازی تونل تقسیمشده استفاده کرد. بهطور پیشفرض، هیچ ترافیکی به تونل هدایت نمیشود. با افزودن ورودی «0.0.0.0/0» به این فهرست، همه ترافیک کاربر به تونل هدایت میشود. وقتی قوانین زیادی با مقصد مطابقت داشته باشد، قانونی که طولانیترین پیشوند منطبق را داشته باشد برنده میشود. ورودیهایی که با بلوک CIDR یکسانی مطابقت دارند بهعنوان تکراری درنظر گرفته میشوند. این موارد تکراری در فهرست مرتبشده (exclusionList + inclusionList) حذف میشوند و ورودی تکراری دقیقی که حذف خواهد شد تعریف نشده است.
-
mtu
رشته اختیاری
تنظیم MTU برای میانای VPN. (پیشفرض: ۱۵۰۰ بایت)
-
اتصال مجدد
رشته اختیاری
Chrome نسخه ۵۱ به بالااینکه افزونه VPN اتصال مجدد خودکار را اجرا میکند یا نه.
اگر درست باشد، از پیامهای پلاتفرم
linkDown،linkUp،linkChanged،suspend، وresumeبرای علامت دادن به رویدادهای مربوطه استفاده خواهد شد. اگر نادرست باشد، درصورت تغییر توپولوژی شبکه، سیستم VPN را بهاجبار قطع میکند و کاربر باید بهصورت دستی دوباره متصل شود. (پیشفرض: نادرست)این ویژگی در Chrome 51 جدید است؛ در نسخههای قبلی استثنا ایجاد میکند. try/catch میتواند برای فعال کردن مشروط ویژگی براساس پشتیبانی مرورگر استفاده شود.
PlatformMessage
پلاتفرم از enum برای مطلع کردن کارخواه از وضعیت جلسه VPN استفاده میکند.
شمارشی
«متصل»
نشان میدهد که پیکربندی VPN متصل شده است.
«قطعشده»
نشان میدهد که پیکربندی VPN قطع شده است.
«خطا»
نشان میدهد که خطایی در اتصال VPN رخ داده است، برای مثال وقفه زمانی. شرح خطا بهعنوان آرگومان خطا به onPlatformMessage داده میشود.
«linkDown»
نشان میدهد که اتصال شبکه فیزیکی پیشفرض قطع است.
«linkUp»
نشان میدهد که اتصال شبکه فیزیکی پیشفرض دوباره برقرار شده است.
"linkChanged"
نشان میدهد که اتصال شبکه فیزیکی پیشفرض تغییر کرده است، مثلاً wifi->mobile.
«تعلیق»
نشان میدهد که سیستمعامل درحال آماده شدن برای تعلیق است، بنابراین VPN باید اتصالش را قطع کند. تضمینی وجود ندارد که افزونه این رویداد را قبلاز تعلیق دریافت کند.
«resume»
نشان میدهد که سیستمعامل ازسر گرفته شده است و کاربر دوباره به سیستم وارد شده است، بنابراین VPN باید دوباره متصل شود.
UIEvent
پلاتفرم از enum برای نشان دادن رویدادی که onUIEvent را راهاندازی کرده است استفاده میکند.
شمارشی
«showAddDialog»
درخواست میکند که کارخواه VPN چارگوش گفتگوی افزودن پیکربندی را به کاربر نشان دهد.
«showConfigureDialog»
درخواست میکند که کارخواه VPN چارگوش گفتگوی تنظیمات پیکربندی را به کاربر نشان دهد.
VpnConnectionState
کارخواه VPN از این شمارش برای اطلاع دادن وضعیت فعلی خود به پلاتفرم استفاده میکند. این کار به ارائه پیامهای معنیدار به کاربر کمک میکند.
شمارشی
«متصل»
مشخص میکند که اتصال VPN موفقیتآمیز بوده است.
«failure»
مشخص میکند که اتصال ویپیان ناموفق بوده است.
روشها
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
پیکربندی VPN جدیدی ایجاد میکند که در چندین جلسه ورود به سیستم کاربر باقی میماند.
پارامترها
-
نام
رشته
نام پیکربندی VPN.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(id: string) => void
-
id
رشته
شناسه یکتا برای پیکربندی ایجادشده، یا
undefinedدرصورت ناموفق بودن.
-
بازگشتیها
-
Promise<string>
Chrome نسخه ۹۶ به بالایک Promise برمیگرداند که وقتی پیکربندی ایجاد میشود حل میشود یا اگر خطایی وجود داشته باشد رد میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
پیکربندی VPN ایجادشده توسط افزونه را ازبین میبرد.
پارامترها
-
id
رشته
شناسه پیکربندی VPN برای ازبین بردن.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ به بالایک Promise برمیگرداند که وقتی پیکربندی ازبین میرود حل میشود یا اگر خطایی وجود داشته باشد رد میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
وضعیت جلسه VPN را به پلاتفرم اطلاع میدهد. این کار فقط زمانی موفقیتآمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.
پارامترها
-
ایالت
وضعیت جلسه VPN کارخواه VPN.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ به بالایک Promise برمیگرداند که وقتی اعلان کامل میشود حل میشود یا اگر خطایی وجود داشته باشد رد میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
بسته IP را ازطریق تونل ایجادشده برای جلسه VPN ارسال میکند. این کار فقط زمانی موفقیتآمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.
پارامترها
-
داده
ArrayBuffer
بسته IP که باید به پلاتفرم ارسال شود.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ به بالایک Promise برمیگرداند که وقتی بسته ارسال میشود حل میشود یا اگر خطایی وجود داشته باشد رد میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
پارامترهای جلسه VPN را تنظیم میکند. این باید بلافاصله پساز دریافت "connected" از پلاتفرم فراخوانی شود. این کار فقط زمانی موفقیتآمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.
پارامترها
-
پارامترها
پارامترهای جلسه VPN.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ به بالایک Promise برمیگرداند که وقتی پارامترها تنظیم میشوند حل میشود یا اگر خطایی وجود داشته باشد رد میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
رویدادها
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
وقتی فعال میشود که پیکربندیای توسط پلاتفرم برای افزونه ایجاد شود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(id: string, name: string, data: object) => void
-
id
رشته
-
نام
رشته
-
داده
شیء
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
زمانی فعال میشود که پیکربندی ایجادشده توسط افزونه از پلاتفرم برداشته شود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(id: string) => void
-
id
رشته
-
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
-
id
رشته
-
پیام
-
خطا
رشته
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Triggered when there is a UI event for the extension. رویدادهای واسط کاربر سیگنالهایی از پلاتفرم هستند که به برنامه نشان میدهند که باید کادر گفتگوی واسط کاربر به کاربر نشان داده شود.