chrome.vpn প্রদানকারী

বিবরণ

একটি VPN ক্লায়েন্ট বাস্তবায়ন করতে chrome.vpnProvider API ব্যবহার করুন।

অনুমতিসমূহ

vpnProvider

উপস্থিতি

শুধুমাত্র Chrome 43+ ChromeOS

ধারণা এবং ব্যবহার

chrome.vpnProvider এর সাধারণ ব্যবহার নিম্নরূপ:

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

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

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

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

  • setParameters() কল করে সংযোগের প্যারামিটার সেট করুন।

  • notifyConnectionStateChanged() কল করে সংযোগের অবস্থা "connected" হিসাবে অবহিত করুন।

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

  • যখন ব্যবহারকারী VPN কনফিগারেশন থেকে সংযোগ বিচ্ছিন্ন করে, তখন onPlatformMessage "disconnected" বার্তা সহ ফায়ার হবে।

  • যদি VPN কনফিগারেশন আর প্রয়োজন না হয়, তাহলে destroyConfig() কল করে এটি ধ্বংস করা যেতে পারে।

প্রকারভেদ

Parameters

বৈশিষ্ট্য

  • ঠিকানা

    স্ট্রিং

    CIDR নোটেশনে VPN ইন্টারফেসের জন্য IP ঠিকানা। বর্তমানে IPv4 হল একমাত্র সমর্থিত মোড।

  • সম্প্রচার ঠিকানা

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

    VPN ইন্টারফেসের জন্য ব্রডকাস্ট ঠিকানা। (ডিফল্ট: IP ঠিকানা এবং মাস্ক থেকে প্রাপ্ত)

  • dns সার্ভার

    স্ট্রিং[]

    DNS সার্ভারের জন্য IP ঠিকানাগুলির একটি তালিকা।

  • ডোমেইন অনুসন্ধান

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

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

  • বর্জন তালিকা

    স্ট্রিং[]

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

  • অন্তর্ভুক্তি তালিকা

    স্ট্রিং[]

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

  • mtu সম্পর্কে

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

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

  • পুনঃসংযোগ করা

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

    ক্রোম ৫১+

    VPN এক্সটেনশনটি স্বয়ংক্রিয় পুনঃসংযোগ প্রয়োগ করে কিনা।

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

    এই বৈশিষ্ট্যটি Chrome 51-এ নতুন; এটি পূর্ববর্তী সংস্করণগুলিতে একটি ব্যতিক্রম তৈরি করবে। ব্রাউজার সমর্থনের উপর ভিত্তি করে শর্তসাপেক্ষে বৈশিষ্ট্যটি সক্ষম করতে try/catch ব্যবহার করা যেতে পারে।

PlatformMessage

প্ল্যাটফর্মটি ভিপিএন সেশন স্ট্যাটাস সম্পর্কে ক্লায়েন্টকে অবহিত করার জন্য এনাম ব্যবহার করে।

এনাম

"সংযুক্ত"
নির্দেশ করে যে VPN কনফিগারেশন সংযুক্ত।

"সংযোগ বিচ্ছিন্ন"
নির্দেশ করে যে VPN কনফিগারেশন সংযোগ বিচ্ছিন্ন।

"ত্রুটি"
VPN সংযোগে একটি ত্রুটি ঘটেছে তা নির্দেশ করে, উদাহরণস্বরূপ একটি সময়সীমা শেষ। onPlatformMessage-এর ত্রুটি যুক্তি হিসাবে ত্রুটির একটি বর্ণনা দেওয়া হয়েছে।

"লিঙ্কডাউন"
নির্দেশ করে যে ডিফল্ট ফিজিক্যাল নেটওয়ার্ক সংযোগ বন্ধ আছে।

"লিঙ্কআপ"
নির্দেশ করে যে ডিফল্ট ফিজিক্যাল নেটওয়ার্ক সংযোগ ব্যাক আপ করা হয়েছে।

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

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

"জীবনবৃত্তান্ত"
ইঙ্গিত দেয় যে OS পুনরায় চালু হয়েছে এবং ব্যবহারকারী আবার লগ ইন করেছেন, তাই VPN পুনরায় সংযোগ করার চেষ্টা করা উচিত।

UIEvent

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

এনাম

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

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

VpnConnectionState

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

এনাম

"সংযুক্ত"
VPN সংযোগ সফল হয়েছে তা উল্লেখ করে।

"ব্যর্থতা"
VPN সংযোগ ব্যর্থ হয়েছে তা উল্লেখ করে।

পদ্ধতি

createConfig()

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

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

পরামিতি

  • নাম

    স্ট্রিং

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

রিটার্নস

  • প্রতিশ্রুতি <স্ট্রিং>

    ক্রোম ৯৬+

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

destroyConfig()

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

এক্সটেনশন দ্বারা তৈরি একটি VPN কনফিগারেশন ধ্বংস করে।

পরামিতি

  • আইডি

    স্ট্রিং

    ধ্বংস করার জন্য VPN কনফিগারেশনের আইডি।

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯৬+

    একটি প্রতিশ্রুতি প্রদান করে যা কনফিগারেশনটি ধ্বংস হয়ে গেলে সমাধান হয় অথবা ত্রুটি থাকলে প্রত্যাখ্যান করা হয়।

notifyConnectionStateChanged()

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

প্ল্যাটফর্মে VPN সেশনের অবস্থা সম্পর্কে অবহিত করে। এটি তখনই সফল হবে যখন VPN সেশনটি এক্সটেনশনের মালিকানাধীন থাকবে।

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯৬+

    একটি প্রতিশ্রুতি প্রদান করে যা বিজ্ঞপ্তি সম্পূর্ণ হলে সমাধান হয় অথবা ত্রুটি থাকলে প্রত্যাখ্যান করা হয়।

sendPacket()

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

VPN সেশনের জন্য তৈরি টানেলের মাধ্যমে একটি IP প্যাকেট পাঠায়। এটি তখনই সফল হবে যখন VPN সেশনটি এক্সটেনশনের মালিকানাধীন থাকবে।

পরামিতি

  • তথ্য

    অ্যারেবাফার

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

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯৬+

    একটি প্রতিশ্রুতি প্রদান করে যা প্যাকেট পাঠানোর সময় সমাধান হয় অথবা ত্রুটি থাকলে প্রত্যাখ্যান করে।

setParameters()

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

VPN সেশনের জন্য প্যারামিটার সেট করে। প্ল্যাটফর্ম থেকে "connected" পাওয়ার পরপরই এটি কল করা উচিত। এটি তখনই সফল হবে যখন VPN সেশনটি এক্সটেনশনের মালিকানাধীন থাকবে।

পরামিতি

  • পরামিতি

    VPN সেশনের জন্য প্যারামিটার।

রিটার্নস

  • প্রতিশ্রুতি<অকার্যকর>

    ক্রোম ৯৬+

    একটি প্রতিশ্রুতি প্রদান করে যা প্যারামিটার সেট করার সময় সমাধান হয় অথবা ত্রুটি থাকলে প্রত্যাখ্যান করে।

ইভেন্টগুলি

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,
)

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

পরামিতি

  • কলব্যাক

    ফাংশন

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

    (data: ArrayBuffer) => void

    • তথ্য

      অ্যারেবাফার

onPlatformMessage

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

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

পরামিতি

  • কলব্যাক

    ফাংশন

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

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

onUIEvent

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

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

পরামিতি

  • কলব্যাক

    ফাংশন

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

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