রিফ্রেশ তারিখ: ২০২৬-০৯-২৫ রোবটস: নোইনডেক্স
বর্ণনা
একটি ভিপিএন ক্লায়েন্ট বাস্তবায়ন করতে chrome.vpnProvider API ব্যবহার করুন।
অনুমতি
vpnProviderপ্রাপ্যতা
ব্যবহার
vpnProvider-এর সাধারণ ব্যবহার নিম্নরূপ:
createConfigমেথড ব্যবহার করে ভিপিএন কনফিগারেশন তৈরি করুন। একটি ভিপিএন কনফিগারেশন হলো একটি স্থায়ী এন্ট্রি যা ব্যবহারকারীকে ক্রোমওএস-এর নিজস্ব ইউজার ইন্টারফেসে দেখানো হয়। ব্যবহারকারী একটি তালিকা থেকে ভিপিএন কনফিগারেশন নির্বাচন করে সেটিতে সংযোগ করতে বা সংযোগ বিচ্ছিন্ন করতে পারেন।onPlatformMessage,onPacketReceivedএবংonConfigRemovedইভেন্টগুলোতে লিসেনার যোগ করুন।যখন ব্যবহারকারী ভিপিএন কনফিগারেশনে সংযুক্ত হন, তখন
"connected"বার্তা সহ একটিonPlatformMessageপাওয়া যাবে।"connected"এবং"disconnected"বার্তা দুটির মধ্যবর্তী সময়কালকে আমরা একটি ভিপিএন সেশন বলি। এই সময়কালে, যে এক্সটেনশনটি বার্তাটি গ্রহণ করে, সেটিকে ভিপিএন সেশনের মালিক বলা হয়।ভিপিএন সার্ভারের সাথে সংযোগ স্থাপন করুন এবং ভিপিএন ক্লায়েন্ট চালু করুন।
setParametersব্যবহার করে সংযোগের প্যারামিটারগুলো নির্ধারণ করুন।notifyConnectionStateChangedব্যবহার করে সংযোগের অবস্থা"connected"হিসেবে অবহিত করুন।উপরের ধাপগুলো ত্রুটিমুক্তভাবে সম্পন্ন হলে, ChromeOS-এর নেটওয়ার্ক স্ট্যাকের সাথে একটি ভার্চুয়াল টানেল তৈরি হয়।
sendPacketব্যবহার করে এই টানেলের মাধ্যমে আইপি প্যাকেট পাঠানো যায় এবং ChromeOS ডিভাইস থেকে আসা যেকোনো প্যাকেটonPacketReceivedইভেন্টটি ব্যবহার করে গ্রহণ করা হয়।যখন ব্যবহারকারী ভিপিএন কনফিগারেশন থেকে সংযোগ বিচ্ছিন্ন করেন, তখন
"disconnected"বার্তা সহonPlatformMessageট্রিগার হবে।ভিপিএন কনফিগারেশনটির আর প্রয়োজন না থাকলে,
destroyConfigব্যবহার করে এটিকে মুছে ফেলা যেতে পারে।
প্রকারভেদ
Parameters
বৈশিষ্ট্য
- ঠিকানা
স্ট্রিং
CIDR পদ্ধতিতে VPN ইন্টারফেসের IP অ্যাড্রেস। বর্তমানে শুধুমাত্র IPv4 সমর্থিত মোড।
- সম্প্রচার ঠিকানা
স্ট্রিং ঐচ্ছিক
ভিপিএন ইন্টারফেসের জন্য ব্রডকাস্ট অ্যাড্রেস। (ডিফল্ট: আইপি অ্যাড্রেস এবং মাস্ক থেকে নির্ণীত)
- ডিএনএস সার্ভার
স্ট্রিং[]
ডিএনএস সার্ভারগুলোর আইপি-র একটি তালিকা।
- ডোমেইন অনুসন্ধান
স্ট্রিং[] ঐচ্ছিক
সার্চ ডোমেইনগুলোর একটি তালিকা। (ডিফল্ট: কোনো সার্চ ডোমেইন নেই)
- বর্জন তালিকা
স্ট্রিং[]
টানেল থেকে CIDR নোটেশনে থাকা IP ব্লকের তালিকা থেকে নেটওয়ার্ক ট্র্যাফিক বাদ দিন। এটি VPN সার্ভারে আসা-যাওয়ার ট্র্যাফিক বাইপাস করতে ব্যবহার করা যেতে পারে। যখন একাধিক নিয়ম একটি গন্তব্যের সাথে মিলে যায়, তখন দীর্ঘতম ম্যাচিং প্রিফিক্সযুক্ত নিয়মটি প্রাধান্য পায়। একই CIDR ব্লকের সাথে সম্পর্কিত এন্ট্রিগুলোকে ডুপ্লিকেট হিসেবে গণ্য করা হয়। সংকলিত (exclusionList + inclusionList) তালিকা থেকে এই ধরনের ডুপ্লিকেটগুলো বাদ দেওয়া হয় এবং ঠিক কোন ডুপ্লিকেট এন্ট্রিটি বাদ দেওয়া হবে তা অনির্ধারিত।
- অন্তর্ভুক্তির তালিকা
স্ট্রিং[]
CIDR নোটেশনে থাকা IP ব্লকের তালিকায় নেটওয়ার্ক ট্র্যাফিককে টানেলে অন্তর্ভুক্ত করুন। এই প্যারামিটারটি একটি স্প্লিট টানেল সেট আপ করতে ব্যবহার করা যেতে পারে। ডিফল্টরূপে, কোনো ট্র্যাফিক টানেলে পাঠানো হয় না। এই তালিকায় "0.0.0.0/0" এন্ট্রিটি যোগ করলে সমস্ত ব্যবহারকারীর ট্র্যাফিক টানেলে পুনঃনির্দেশিত হয়। যখন একাধিক নিয়ম একটি গন্তব্যের সাথে মিলে যায়, তখন দীর্ঘতম মিল থাকা প্রিফিক্সযুক্ত নিয়মটি প্রাধান্য পায়। একই CIDR ব্লকের সাথে সম্পর্কিত এন্ট্রিগুলোকে ডুপ্লিকেট হিসেবে গণ্য করা হয়। সংকলিত (exclusionList + inclusionList) তালিকা থেকে এই ধরনের ডুপ্লিকেটগুলো বাদ দেওয়া হয় এবং ঠিক কোন ডুপ্লিকেট এন্ট্রিটি বাদ দেওয়া হবে তা অনির্ধারিত।
- এমটিইউ
স্ট্রিং ঐচ্ছিক
ভিপিএন ইন্টারফেসের জন্য এমটিইউ সেটিং। (ডিফল্ট: ১৫০০ বাইট)
- পুনরায় সংযোগ করুন
স্ট্রিং ঐচ্ছিক
ক্রোম ৫১+ভিপিএন এক্সটেনশনটি স্বয়ংক্রিয় পুনঃসংযোগ বাস্তবায়ন করে কি না।
যদি true হয়, তাহলে
linkDown,linkUp,linkChanged,suspend, এবংresumeplatform মেসেজগুলো সংশ্লিষ্ট ইভেন্টগুলো বোঝাতে ব্যবহৃত হবে। যদি false হয়, তাহলে নেটওয়ার্ক টপোলজি পরিবর্তিত হলে সিস্টেম জোরপূর্বক VPN সংযোগ বিচ্ছিন্ন করে দেবে এবং ব্যবহারকারীকে ম্যানুয়ালি পুনরায় সংযোগ করতে হবে। (ডিফল্ট: false)এই প্রপার্টিটি ক্রোম ৫১-এ নতুন; এটি পূর্ববর্তী সংস্করণগুলিতে একটি এক্সেপশন তৈরি করবে। ব্রাউজার সমর্থনের উপর ভিত্তি করে শর্তসাপেক্ষে ফিচারটি চালু করতে try/catch ব্যবহার করা যেতে পারে।
PlatformMessage
প্ল্যাটফর্মটি ক্লায়েন্টকে ভিপিএন সেশনের অবস্থা সম্পর্কে অবহিত করতে এই এনামটি ব্যবহার করে।
এনাম
"সংযুক্ত" "বিচ্ছিন্ন" "ত্রুটি" "লিঙ্কডাউন" "লিঙ্কআপ" 'লিঙ্ক পরিবর্তিত হয়েছে' "স্থগিত" "পুনরায় শুরু করুন"
এটি নির্দেশ করে যে ভিপিএন কনফিগারেশনটি সংযুক্ত হয়েছে।
এটি নির্দেশ করে যে ভিপিএন কনফিগারেশনটি সংযোগ বিচ্ছিন্ন হয়েছে।
এটি নির্দেশ করে যে ভিপিএন সংযোগে কোনো ত্রুটি ঘটেছে, যেমন টাইমআউট। ত্রুটির বিবরণটি onPlatformMessage-এর error আর্গুমেন্ট হিসেবে দেওয়া হয়।
এটি নির্দেশ করে যে ডিফল্ট ফিজিক্যাল নেটওয়ার্ক সংযোগটি বিচ্ছিন্ন রয়েছে।
এটি নির্দেশ করে যে ডিফল্ট ফিজিক্যাল নেটওয়ার্ক সংযোগটি পুনরায় চালু হয়েছে।
এটি নির্দেশ করে যে ডিফল্ট ফিজিক্যাল নেটওয়ার্ক সংযোগ পরিবর্তিত হয়েছে, যেমন ওয়াইফাই থেকে মোবাইল।
এটি নির্দেশ করে যে অপারেটিং সিস্টেম (OS) সাসপেন্ড হওয়ার প্রস্তুতি নিচ্ছে, তাই ভিপিএন-এর সংযোগ বিচ্ছিন্ন করা উচিত। সাসপেন্ড হওয়ার আগে এক্সটেনশনটি এই ইভেন্টটি পাবেই, এমন কোনো নিশ্চয়তা নেই।
এটি নির্দেশ করে যে অপারেটিং সিস্টেম পুনরায় চালু হয়েছে এবং ব্যবহারকারী আবার লগ ইন করেছেন, তাই ভিপিএন-এর পুনরায় সংযোগ করার চেষ্টা করা উচিত।
UIEvent
onUIEvent দ্বারা ট্রিগার হওয়া ইভেন্টটি নির্দেশ করতে প্ল্যাটফর্ম এই enum-টি ব্যবহার করে।
এনাম
"showAddDialog" "showConfigureDialog"
ভিপিএন ক্লায়েন্টকে অনুরোধ করা হচ্ছে যেন ব্যবহারকারীকে কনফিগারেশন যোগ করার ডায়ালগ বক্সটি দেখানো হয়।
ভিপিএন ক্লায়েন্টকে ব্যবহারকারীকে কনফিগারেশন সেটিংস ডায়ালগ বক্স দেখানোর জন্য অনুরোধ করা হচ্ছে।
VpnConnectionState
ভিপিএন ক্লায়েন্ট তার বর্তমান অবস্থা সম্পর্কে প্ল্যাটফর্মকে জানাতে এনামটি ব্যবহার করে। এটি ব্যবহারকারীকে অর্থপূর্ণ বার্তা প্রদানে সহায়তা করে।
এনাম
"সংযুক্ত" "ব্যর্থতা"
এটি নির্দেশ করে যে ভিপিএন সংযোগ সফল হয়েছে।
নির্দেশ করে যে ভিপিএন সংযোগ ব্যর্থ হয়েছে।
পদ্ধতি
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
একটি নতুন ভিপিএন কনফিগারেশন তৈরি করে যা ব্যবহারকারীর একাধিক লগইন সেশনেও অপরিবর্তিত থাকে।
প্যারামিটার
- নাম
স্ট্রিং
ভিপিএন কনফিগারেশনের নাম।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string) => void
- আইডি
স্ট্রিং
তৈরি করা কনফিগারেশনের জন্য একটি অনন্য আইডি, অথবা ব্যর্থ হলে
undefined।
ফেরত
প্রতিশ্রুতি<string>
ক্রোম ৯৬+একটি প্রমিস রিটার্ন করে, যা কনফিগারেশন তৈরি হলে রিজলভ হয় অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
এক্সটেনশন দ্বারা তৈরি একটি ভিপিএন কনফিগারেশন মুছে ফেলে।
প্যারামিটার
- আইডি
স্ট্রিং
যে ভিপিএন কনফিগারেশনটি ধ্বংস করতে হবে তার আইডি।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+একটি প্রমিজ রিটার্ন করে যা কনফিগারেশন ধ্বংস হলে রিজলভ হয় অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
প্ল্যাটফর্মকে ভিপিএন সেশনের অবস্থা সম্পর্কে অবহিত করে। এটি কেবল তখনই সফল হবে যখন ভিপিএন সেশনটি এক্সটেনশনটির মালিকানাধীন হবে।
প্যারামিটার
- রাজ্য
ভিপিএন ক্লায়েন্টের ভিপিএন সেশন অবস্থা।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+একটি প্রমিজ রিটার্ন করে, যা নোটিফিকেশনটি সম্পূর্ণ হলে রিজলভ হয় অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
ভিপিএন সেশনের জন্য তৈরি করা টানেলের মাধ্যমে একটি আইপি প্যাকেট পাঠানো হয়। এটি কেবল তখনই সফল হবে যখন ভিপিএন সেশনটি এক্সটেনশনটির মালিকানাধীন হবে।
প্যারামিটার
- ডেটা
অ্যারেবাফার
প্ল্যাটফর্মে পাঠানোর জন্য আইপি প্যাকেট।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+একটি প্রমিস রিটার্ন করে, যা প্যাকেট পাঠানো হলে রিজলভ হয় অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
ভিপিএন সেশনের জন্য প্যারামিটার নির্ধারণ করে। প্ল্যাটফর্ম থেকে "connected" সংকেত পাওয়ার সাথে সাথেই এটি কল করা উচিত। এটি কেবল তখনই সফল হবে যখন ভিপিএন সেশনটি এক্সটেনশনটির মালিকানাধীন হবে।
প্যারামিটার
- প্যারামিটার
ভিপিএন সেশনের প্যারামিটারসমূহ।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯৬+একটি প্রমিস রিটার্ন করে, যা প্যারামিটার সেট করা হলে রিজলভ হয় অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
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,
)
এক্সটেনশনটির মালিকানাধীন ভিপিএন সেশনের জন্য টানেলের মাধ্যমে একটি আইপি প্যাকেট গৃহীত হলে এটি সক্রিয় হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(data: ArrayBuffer) => void
- ডেটা
অ্যারেবাফার
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
এক্সটেনশনটির মালিকানাধীন কোনো ভিপিএন কনফিগারেশনের জন্য প্ল্যাটফর্ম থেকে বার্তা পেলে এটি সক্রিয় হয়।
প্যারামিটার
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, message: PlatformMessage, error: string) => void
- আইডি
স্ট্রিং
- বার্তা
- ত্রুটি
স্ট্রিং
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
এক্সটেনশনটির জন্য কোনো UI ইভেন্ট ঘটলে এটি সক্রিয় হয়। UI ইভেন্ট হলো প্ল্যাটফর্ম থেকে আসা সংকেত, যা অ্যাপকে নির্দেশ করে যে ব্যবহারকারীকে একটি UI ডায়ালগ দেখাতে হবে।