browser.vpnProvider

বিবরণ

VPN ক্লায়েন্ট প্রয়োগ করতে chrome.vpnProvider API ব্যবহার করুন।

অনুমতি

vpnProvider

উপলভ্যতা

Chrome 43+ Chrome 148 থেকে browser.* শুধুমাত্র ChromeOS

ধারণা ও ব্যবহার

browser.vpnProvider-এর সাধারণ ব্যবহার নিচে উল্লেখ করা হল:

  • createConfig() কল করে VPN কনফিগারেশন তৈরি করুন। VPN কনফিগারেশন হল একটি স্থায়ী এন্ট্রি যা ChromeOS UI-তে ব্যবহারকারীকে দেখানো হয়। ব্যবহারকারী তালিকা থেকে একটি VPN কনফিগারেশন বেছে নিতে এবং এটির সাথে কানেক্ট করতে বা এটি থেকে ডিসকানেক্ট করতে পারবেন।

  • onPlatformMessage, onPacketReceived এবং onConfigRemoved ইভেন্টে লিসেনার যোগ করুন।

  • ব্যবহারকারী VPN কনফিগারেশনে কানেক্ট করলে, "connected" মেসেজের সাথে onPlatformMessage পাওয়া যাবে। "connected" এবং "disconnected" মেসেজের মধ্যবর্তী সময়কে "VPN সেশন" বলা হয়। এই সময়সীমার মধ্যে, যে এক্সটেনশন মেসেজ পায়, সেটি VPN সেশনের মালিক বলে ধরা হয়।

  • VPN সার্ভারের সাথে কানেকশন শুরু করুন এবং VPN ক্লায়েন্ট চালু করুন।

  • setParameters()-এ কল করে কানেকশনের প্যারামিটার সেট করুন।

  • notifyConnectionStateChanged()-এ কল করে কানেকশন স্ট্যাটাস "connected" হিসেবে বিজ্ঞপ্তি পাঠান।

  • আগের ধাপগুলি কোনও সমস্যা ছাড়াই সম্পূর্ণ হলে, ChromeOS-এর নেটওয়ার্ক স্ট্যাকে একটি ভার্চুয়াল টানেল তৈরি হয়। sendPacket() কল করে টানেলের মাধ্যমে IP প্যাকেট পাঠানো যেতে পারে এবং ChromeOS ডিভাইসে তৈরি হওয়া যেকোনও প্যাকেট onPacketReceived ইভেন্ট হ্যান্ডলার ব্যবহার করে রিসিভ করা হবে।

  • ব্যবহারকারী VPN কনফিগারেশন থেকে ডিসকানেক্ট করলে, "disconnected" মেসেজ সহ onPlatformMessage ফায়ার করা হবে।

  • VPN কনফিগারেশনের আর প্রয়োজন না থাকলে, destroyConfig() কল করে এটি মুছে দেওয়া যেতে পারে।

ধরন

Parameters

প্রপার্টি

  • ঠিকানা

    স্ট্রিং

    CIDR নোটেশনে VPN ইন্টারফেসের জন্য IP অ্যাড্রেস। বর্তমানে শুধুমাত্র IPv4 মোড কাজ করে।

  • broadcastAddress

    স্ট্রিং ঐচ্ছিক

    VPN ইন্টারফেসের জন্য ব্রডকাস্ট অ্যাড্রেস। (ডিফল্ট: IP অ্যাড্রেস ও মাস্ক থেকে অনুমান করা হয়েছে)

  • dnsServers

    স্ট্রিং[]

    ডিএনএস (DNS) সার্ভারের জন্য IP-এর তালিকা।

  • domainSearch

    string[] ঐচ্ছিক

    সার্চ ডোমেনের তালিকা। (ডিফল্ট: কোনও সার্চ ডোমেন নেই)

  • exclusionList

    স্ট্রিং[]

    টানেল থেকে CIDR নোটেশনে IP ব্লকের তালিকায় নেটওয়ার্ক ট্রাফিক বাদ দিন। VPN সার্ভারে আসা ও যাওয়া ট্রাফিক বাইপাস করতে এটি ব্যবহার করা যেতে পারে। কোনও গন্তব্যের সাথে একাধিক নিয়ম ম্যাচ করলে, সবচেয়ে দীর্ঘ ম্যাচিং প্রিফিক্স সহ নিয়মটি জয়ী হয়। একই CIDR ব্লকের সাথে সম্পর্কিত এন্ট্রিগুলি ডুপ্লিকেট হিসেবে বিবেচিত হয়। সংকলিত (exclusionList + inclusionList) তালিকায় এই ধরনের ডুপ্লিকেট বাদ দেওয়া হয় এবং যে সঠিক ডুপ্লিকেট এন্ট্রি বাদ দেওয়া হবে তা সংজ্ঞায়িত করা হয় না।

  • inclusionList

    স্ট্রিং[]

    টানেলে CIDR নোটেশনে IP ব্লকের তালিকায় নেটওয়ার্ক ট্রাফিক অন্তর্ভুক্ত করুন। এই প্যারামিটারটি স্প্লিট টানেল সেট-আপ করতে ব্যবহার করা যেতে পারে। ডিফল্ট হিসেবে কোনও ট্রাফিক টানেলে পাঠানো হয় না। এই তালিকায় "0.0.0.0/0" এন্ট্রি যোগ করলে, ব্যবহারকারীর সব ট্রাফিক টানেলে রিডাইরেক্ট করা হয়। কোনও গন্তব্যের সাথে একাধিক নিয়ম ম্যাচ করলে, সবচেয়ে দীর্ঘ ম্যাচিং প্রিফিক্স সহ নিয়মটি জয়ী হয়। একই CIDR ব্লকের সাথে সম্পর্কিত এন্ট্রিগুলি ডুপ্লিকেট হিসেবে বিবেচিত হয়। সংকলিত (exclusionList + inclusionList) তালিকায় এই ধরনের ডুপ্লিকেট বাদ দেওয়া হয় এবং যে সঠিক ডুপ্লিকেট এন্ট্রি বাদ দেওয়া হবে তা সংজ্ঞায়িত করা হয় না।

  • mtu

    স্ট্রিং ঐচ্ছিক

    VPN ইন্টারফেসের জন্য MTU সেটিং। (ডিফল্ট: ১৫০০ বাইট)

  • আবার কানেক্ট করুন

    স্ট্রিং ঐচ্ছিক

    Chrome 51+ browser.* Chrome 148 থেকে

    VPN এক্সটেনশন অটোমেটিক-রিকানেকশন প্রয়োগ করে কিনা।

    সত্য হলে, linkDown, linkUp, linkChanged, suspend এবং resume প্ল্যাটফর্ম মেসেজ সংশ্লিষ্ট ইভেন্ট সিগন্যাল করতে ব্যবহার করা হবে। মিথ্যা হলে, নেটওয়ার্ক টপোলজি পরিবর্তন হলে সিস্টেম জোর করে VPN ডিসকানেক্ট করে দেবে এবং ব্যবহারকারীকে ম্যানুয়ালি আবার কানেক্ট করতে হবে। (ডিফল্ট: মিথ্যা)

    এই প্রপার্টি Chrome 51-এ নতুন; এটি আগের ভার্সনে ব্যতিক্রম তৈরি করবে। ব্রাউজার সাপোর্টের উপর ভিত্তি করে ফিচারটি শর্তসাপেক্ষে চালু করতে try/catch ব্যবহার করা যেতে পারে।

PlatformMessage

VPN সেশন স্ট্যাটাস সম্পর্কে ক্লায়েন্টকে জানাতে প্ল্যাটফর্মের মাধ্যমে enum ব্যবহার করা হয়।

Enum

"কানেক্ট করা হয়েছে"
এটি দেখায় যে VPN কনফিগারেশন কানেক্ট করা হয়েছে।

"ডিসকানেক্ট করা হয়েছে"
VPN কনফিগারেশন ডিসকানেক্ট করা হয়েছে বলে দেখায়।

"error"
এটি দেখায় যে VPN কানেকশনে কোনও সমস্যা হয়েছে, যেমন টাইমআউট। onPlatformMessage-এ ত্রুটির আর্গুমেন্ট হিসেবে ত্রুটির বিবরণ দেওয়া আছে।

"linkDown"
ডিফল্ট ফিজিক্যাল নেটওয়ার্ক কানেকশন ডাউন আছে বলে দেখায়।

"linkUp"
ডিফল্ট ফিজিক্যাল নেটওয়ার্ক কানেকশন ব্যাক-আপ করা হয়েছে বলে দেখায়।

"linkChanged"
ডিফল্ট ফিজিক্যাল নেটওয়ার্ক কানেকশন পরিবর্তন হয়েছে বলে ইঙ্গিত করে, যেমন ওয়াই-ফাই->মোবাইল।

"suspend"
এটি দেখায় যে OS সাসপেন্ড করার জন্য প্রস্তুত হচ্ছে, তাই VPN-এর কানেকশন ড্রপ করা উচিত। সাসপেন্ড করার আগে এক্সটেনশন এই ইভেন্ট পাবে কিনা তার কোনও গ্যারেন্টি নেই।

"resume"
এটি দেখায় যে OS আবার চালু হয়েছে এবং ব্যবহারকারী আবার লগ-ইন করেছেন, তাই VPN-এর আবার কানেক্ট করার চেষ্টা করা উচিত।

UIEvent

onUIEvent ট্রিগার করা ইভেন্ট নির্দেশ করতে প্ল্যাটফর্মের মাধ্যমে enum ব্যবহার করা হয়।

Enum

"showAddDialog"
VPN ক্লায়েন্টকে ব্যবহারকারীর জন্য কনফিগারেশন যোগ করার ডায়ালগ বক্স দেখানোর অনুরোধ করে।

"showConfigureDialog"
VPN ক্লায়েন্ট যাতে ব্যবহারকারীকে কনফিগারেশন সেটিংস ডায়ালগ বক্স দেখায় তার জন্য অনুরোধ করে।

VpnConnectionState

VPN ক্লায়েন্ট তার বর্তমান অবস্থা প্ল্যাটফর্মকে জানাতে enum ব্যবহার করে। এটি ব্যবহারকারীকে অর্থপূর্ণ মেসেজ প্রদান করতে সাহায্য করে।

Enum

"কানেক্ট করা হয়েছে"
VPN কানেকশন সফল হয়েছে কিনা তা নির্দিষ্ট করে।

"ব্যর্থ"
VPN কানেকশন ব্যর্থ হয়েছে বলে উল্লেখ করে।

পদ্ধতি

createConfig()

browser.vpnProvider.createConfig(
  name: string,
)
: Promise<string>

নতুন VPN কনফিগারেশন তৈরি করে যা ব্যবহারকারীর একাধিক লগ-ইন সেশন জুড়ে কাজ করে।

প্যারামিটারগুলি

  • নাম

    স্ট্রিং

    VPN কনফিগারেশনের নাম।

রিটার্ন

  • Promise<string>

    Chrome 96+ Chrome 148 থেকে browser.*

    কনফিগারেশন তৈরি হলে সমাধান করে বা কোনও সমস্যা থাকলে বাতিল করে এমন একটি Promise রিটার্ন করে।

destroyConfig()

browser.vpnProvider.destroyConfig(
  id: string,
)
: Promise<void>

এক্সটেনশনের মাধ্যমে তৈরি করা VPN কনফিগারেশন নষ্ট করে।

প্যারামিটারগুলি

  • id

    স্ট্রিং

    VPN কনফিগারেশনের আইডি নষ্ট করতে হবে।

রিটার্ন

  • <void> প্রমিস

    Chrome 96+ Chrome 148 থেকে browser.*

    কনফিগারেশন নষ্ট হয়ে গেলে বা কোনও সমস্যা হলে, এটি একটি Promise রিটার্ন করে যা সমাধান করে।

notifyConnectionStateChanged()

browser.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
)
: Promise<void>

প্ল্যাটফর্মে VPN সেশনের অবস্থা সম্পর্কে বিজ্ঞপ্তি দেয়। This will succeed only when the VPN session is owned by the extension.

প্যারামিটারগুলি

  • রাজ্য

    VPN ক্লায়েন্টের VPN সেশন স্ট্যাটাস।

রিটার্ন

  • <void> প্রমিস

    Chrome 96+ Chrome 148 থেকে browser.*

    বিজ্ঞপ্তি সম্পূর্ণ হলে একটি Promise রিটার্ন করে যা সমাধান করে অথবা কোনও সমস্যা হলে প্রত্যাখ্যান করে।

sendPacket()

browser.vpnProvider.sendPacket(
  data: ArrayBuffer,
)
: Promise<void>

VPN সেশনের জন্য তৈরি করা টানেলের মাধ্যমে IP প্যাকেট পাঠায়। This will succeed only when the VPN session is owned by the extension.

প্যারামিটারগুলি

  • ডেটা

    ArrayBuffer

    IP প্যাকেট প্ল্যাটফর্মে পাঠানো হবে।

রিটার্ন

  • <void> প্রমিস

    Chrome 96+ Chrome 148 থেকে browser.*

    প্যাকেট পাঠানো হলে বা কোনও সমস্যা হলে তা বাতিল করা হলে, একটি প্রমিস রিটার্ন করে।

setParameters()

browser.vpnProvider.setParameters(
  parameters: Parameters,
)
: Promise<void>

VPN সেশনের জন্য প্যারামিটার সেট করে। প্ল্যাটফর্ম থেকে "connected" পাওয়ার সাথে সাথেই এটি কল করতে হবে। This will succeed only when the VPN session is owned by the extension.

প্যারামিটারগুলি

রিটার্ন

  • <void> প্রমিস

    Chrome 96+ Chrome 148 থেকে browser.*

    প্যারামিটার সেট করা হলে সমাধান করে বা কোনও সমস্যা হলে প্রত্যাখ্যান করে এমন একটি প্রমিস ফেরত দেয়।

ইভেন্ট

onConfigCreated

browser.vpnProvider.onConfigCreated.addListener(
  callback: function,
)

এক্সটেনশনের জন্য প্ল্যাটফর্মের মাধ্যমে কনফিগারেশন তৈরি করা হলে ট্রিগার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (id: string, name: string, data: object) => void

    • id

      স্ট্রিং

    • নাম

      স্ট্রিং

    • ডেটা

      অবজেক্ট

onConfigRemoved

browser.vpnProvider.onConfigRemoved.addListener(
  callback: function,
)

এক্সটেনশনের মাধ্যমে তৈরি করা কনফিগারেশন প্ল্যাটফর্মের মাধ্যমে সরিয়ে দেওয়া হলে ট্রিগার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (id: string) => void

    • id

      স্ট্রিং

onPacketReceived

browser.vpnProvider.onPacketReceived.addListener(
  callback: function,
)

এক্সটেনশনের মালিকানাধীন VPN সেশনের জন্য টানেলের মাধ্যমে IP প্যাকেট পেলে ট্রিগার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (data: ArrayBuffer) => void

    • ডেটা

      ArrayBuffer

onPlatformMessage

browser.vpnProvider.onPlatformMessage.addListener(
  callback: function,
)

এক্সটেনশনের মালিকানাধীন VPN কনফিগারেশনের জন্য প্ল্যাটফর্ম থেকে কোনও মেসেজ পেলে ট্রিগার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (id: string, message: PlatformMessage, error: string) => void

    • id

      স্ট্রিং

    • মেসেজ
    • সমস্যা

      স্ট্রিং

onUIEvent

browser.vpnProvider.onUIEvent.addListener(
  callback: function,
)

এক্সটেনশনের জন্য কোনও UI ইভেন্ট থাকলে ট্রিগার করা হয়। UI ইভেন্ট হল প্ল্যাটফর্ম থেকে পাওয়া সিগন্যাল যা অ্যাপকে নির্দেশ দেয় যে ব্যবহারকারীকে UI ডায়ালগ দেখাতে হবে।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (event: UIEvent, id?: string) => void

    • ইভেন্ট
    • id

      স্ট্রিং ঐচ্ছিক