chrome.sockets.udp

বিবরণ

UDP কানেকশন ব্যবহার করে নেটওয়ার্কের মাধ্যমে ডেটা পাঠানো ও পাওয়ার জন্য chrome.sockets.udp API ব্যবহার করুন। এই API, "সকেট" API-তে আগে পাওয়া UDP কার্যকারিতার স্থান অধিকার করে।

ম্যানিফেস্ট

এই API ব্যবহার করতে নিম্নলিখিত কীগুলি ম্যানিফেস্টে ঘোষণা করতে হবে।

"sockets"

ধরন

CreateInfo

প্রপার্টি

  • socketId

    নম্বর

    নতুন তৈরি করা সকেটের আইডি। মনে রাখবেন, এই API থেকে তৈরি করা সকেট আইডি অন্যান্য API থেকে তৈরি করা সকেট আইডির সাথে মানানসই নয়, যেমন, বন্ধ হয়ে যাওয়া [সকেট](../socket/) API।

DnsQueryType

Chrome 103+

DNS রেজোলিউশন সংক্রান্ত পছন্দ। ডিফল্ট হল any এবং বর্তমান OS কনফিগারেশন ব্যবহার করে যা IPv4 বা IPv6 ফিরিয়ে দিতে পারে। ipv4 IPv4 এবং ipv6 IPv6 ব্যবহার করতে বাধ্য করে।

Enum

"যেকোনও"

"ipv4"

"ipv6"

ReceiveErrorInfo

প্রপার্টি

  • resultCode

    নম্বর

    অন্তর্নিহিত recvfrom() কল থেকে পাওয়া ফলাফল কোড।

  • socketId

    নম্বর

    সকেট আইডি।

ReceiveInfo

প্রপার্টি

  • ডেটা

    ArrayBuffer

    UDP প্যাকেট কন্টেন্ট (বর্তমান বাফার সাইজে ট্রাঙ্কেট করা হয়েছে)।

  • remoteAddress

    স্ট্রিং

    যে হোস্ট থেকে প্যাকেট আসে তার ঠিকানা।

  • remotePort

    নম্বর

    প্যাকেট যে হোস্ট থেকে আসে তার পোর্ট।

  • socketId

    নম্বর

    সকেট আইডি।

SendInfo

প্রপার্টি

  • bytesSent

    নম্বর ঐচ্ছিক

    যত বাইট পাঠানো হয়েছে (ফলাফল == ০ হলে)

  • resultCode

    নম্বর

    অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

SocketInfo

প্রপার্টি

  • bufferSize

    নম্বর ঐচ্ছিক

    ডেটা রিসিভ করার জন্য ব্যবহৃত বাফারের সাইজ। কোনও বাফার সাইজ স্পষ্টভাবে উল্লেখ করা না থাকলে, ভ্যালু প্রদান করা হয় না।

  • localAddress

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

    অন্তর্নিহিত সকেট বাউন্ড থাকলে, এতে স্থানীয় IPv4/6 অ্যাড্রেস থাকে।

  • localPort

    নম্বর ঐচ্ছিক

    আন্ডারলাইং সকেট বাউন্ড থাকলে, এতে স্থানীয় পোর্ট থাকে।

  • নাম

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

    সকেটের সাথে যুক্ত অ্যাপ্লিকেশন-নির্ধারিত স্ট্রিং।

  • সাময়িক ভাবে থামানো হয়েছে

    বুলিয়ান

    সকেট onReceive ইভেন্ট ফায়ার করা থেকে ব্লক করা আছে কিনা তা ইঙ্গিত করার ফ্ল্যাগ।

  • অবিচ্ছিন্ন

    বুলিয়ান

    অ্যাপ্লিকেশন সাসপেন্ড করা হলে সকেট খোলা আছে কিনা তা ইঙ্গিত করার ফ্ল্যাগ (SocketProperties.persistent দেখুন)।

  • socketId

    নম্বর

    সকেট শনাক্তকারী।

SocketProperties

প্রপার্টি

  • bufferSize

    নম্বর ঐচ্ছিক

    ডেটা রিসিভ করার জন্য ব্যবহৃত বাফারের সাইজ। UDP প্যাকেট পাওয়ার জন্য বাফার খুব ছোট হলে, ডেটা হারিয়ে যায়। ডিফল্ট ভ্যালু হল ৪০৯৬।

  • নাম

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

    সকেটের সাথে যুক্ত অ্যাপ্লিকেশন-নির্ধারিত স্ট্রিং।

  • অবিচ্ছিন্ন

    বুলিয়ান ঐচ্ছিক

    অ্যাপ্লিকেশনের ইভেন্ট পৃষ্ঠা আনলোড করার সময় সকেট খোলা থাকলে ফ্ল্যাগ দেখানো হয় (অ্যাপ লাইফসাইকেল ম্যানেজ করুন দেখুন)। ডিফল্ট ভ্যালু হল "false"। অ্যাপ্লিকেশন লোড করা হলে, persistent=true সহ আগে খোলা যেকোনও সকেট getSockets-এর মাধ্যমে ফেচ করা যাবে।

পদ্ধতি

bind()

chrome.sockets.udp.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)
: void

সকেটের জন্য স্থানীয় ঠিকানা ও পোর্ট বাইন্ড করে। ক্লায়েন্ট সকেটের ক্ষেত্রে, প্ল্যাটফর্মকে একটি ফ্রি পোর্ট বেছে নিতে দেওয়ার জন্য পোর্ট 0 ব্যবহার করার সাজেশন দেওয়া হয়।

bind অপারেশন সম্পূর্ণ হয়ে গেলে, onReceive ইভেন্টগুলি নির্দিষ্ট করা অ্যাড্রেস/পোর্টে UDP প্যাকেট আসার পরে উত্থাপিত হয় -- যদি না সকেট পজ করা থাকে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • ঠিকানা

    স্ট্রিং

    লোকাল মেশিনের ঠিকানা। DNS নাম, IPv4 এবং IPv6 ফর্ম্যাট কাজ করে। স্থানীয়ভাবে উপলভ্য সব নেটওয়ার্ক ইন্টারফেস থেকে প্যাকেট গ্রহণ করতে "0.0.0.0" ব্যবহার করুন।

  • পোর্ট

    নম্বর

    লোকাল মেশিনের পোর্ট। ফ্রি পোর্টে বাইন্ড করতে "0" ব্যবহার করুন।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

close()

প্রতিশ্রুতি
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

সকেট বন্ধ করে এবং সকেট যে অ্যাড্রেস/পোর্টের সাথে বাউন্ড করা আছে তা রিলিজ করে। তৈরি করা প্রতিটি সকেট ব্যবহারের পরে বন্ধ করে দিতে হবে। ফাংশন কল করার সাথে সাথেই সকেট আইডি আর কাজ করে না। তবে, কলব্যাক চালু করা হলেই সকেট বন্ধ হওয়ার গ্যারেন্টি দেওয়া হয়।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    () => void

রিটার্ন

  • <void> প্রমিস

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

create()

প্রতিশ্রুতি
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

প্রদত্ত প্রপার্টি সহ একটি UDP সকেট তৈরি করে।

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

  • প্রপার্টি

    SocketProperties ঐচ্ছিক

    সকেট প্রপার্টি (ঐচ্ছিক)।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (createInfo: CreateInfo) => void

    • createInfo

      সকেট তৈরির ফলাফল।

রিটার্ন

  • Promise<CreateInfo>

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

getInfo()

প্রতিশ্রুতি
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

প্রদত্ত সকেটের স্ট্যাটাস ফিরিয়ে আনে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (socketInfo: SocketInfo) => void

    • socketInfo

      সকেট সংক্রান্ত তথ্য সহ অবজেক্ট।

রিটার্ন

  • Promise<SocketInfo>

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

getJoinedGroups()

প্রতিশ্রুতি
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

সকেট বর্তমানে যে মাল্টিকাস্ট গ্রুপ অ্যাড্রেসে যোগ দিয়েছে তা পায়।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (groups: string[]) => void

    • গ্রুপ

      স্ট্রিং[]

      সকেট যে গ্রুপে যোগ দিয়েছে তার অ্যারে।

রিটার্ন

  • Promise<string[]>

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

getSockets()

প্রতিশ্রুতি
chrome.sockets.udp.getSockets(
  callback?: function,
)
: Promise<SocketInfo[]>

অ্যাপ্লিকেশনের মালিকানাধীন বর্তমানে খোলা সকেটের তালিকা রিট্রিভ করে।

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

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (socketInfos: SocketInfo[]) => void

    • socketInfos

      সকেট সংক্রান্ত তথ্য সহ অবজেক্টের অ্যারে।

রিটার্ন

  • Promise<SocketInfo[]>

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

joinGroup()

chrome.sockets.udp.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

মাল্টিকাস্ট গ্রুপে যোগ দেয় এবং সেই গ্রুপ থেকে প্যাকেট গ্রহণ করা শুরু করে। এই পদ্ধতি কল করার আগে সকেট অবশ্যই লোকাল পোর্টের সাথে বাউন্ড করতে হবে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • ঠিকানা

    স্ট্রিং

    যোগ দেওয়ার জন্য গ্রুপের ঠিকানা। ডোমেন নাম কাজ করে না।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

leaveGroup()

chrome.sockets.udp.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)
: void

joinGroup ব্যবহার করে আগে যোগ দেওয়া মাল্টিকাস্ট গ্রুপ থেকে বেরিয়ে আসে। আপনি যদি পরে সকেট ব্যবহার করার পরিকল্পনা করেন, তাহলেই শুধু এটি কল করার প্রয়োজন হয়, কারণ সকেট বন্ধ হয়ে গেলে OS অটোমেটিক এটি করে দেবে।

গ্রুপ থেকে বেরিয়ে গেলে, রাউটার লোকাল হোস্টে মাল্টিকাস্ট ডেটাগ্রাম পাঠানো বন্ধ করে দেবে, যদি ধরে নেওয়া হয় যে হোস্টের অন্য কোনও প্রসেস এখনও গ্রুপের সাথে যুক্ত নেই।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • ঠিকানা

    স্ট্রিং

    যে গ্রুপ থেকে বেরিয়ে আসতে চান সেটির ঠিকানা। ডোমেন নাম কাজ করে না।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

send()

chrome.sockets.udp.send(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  dnsQueryType?: DnsQueryType,
  callback: function,
)
: void

প্রদত্ত সকেটে প্রদত্ত ঠিকানা ও পোর্টে ডেটা পাঠায়। এই পদ্ধতি কল করার আগে সকেট অবশ্যই লোকাল পোর্টের সাথে বাউন্ড করতে হবে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • ডেটা

    ArrayBuffer

    যে ডেটা পাঠাতে হবে।

  • ঠিকানা

    স্ট্রিং

    রিমোট মেশিনের অ্যাড্রেস।

  • পোর্ট

    নম্বর

    রিমোট মেশিনের পোর্ট।

  • dnsQueryType

    DnsQueryType ঐচ্ছিক

    Chrome 103+

    ঠিকানা রেজোলিউশন সংক্রান্ত পছন্দ।

  • কলব্যাক

    ফাংশন

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

    (sendInfo: SendInfo) => void

    • sendInfo

      send পদ্ধতির ফলাফল।

setBroadcast()

Chrome 44+
chrome.sockets.udp.setBroadcast(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

এই সকেটে ব্রডকাস্ট প্যাকেট চালু বা বন্ধ করে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • সক্ষমিত

    বুলিয়ান

    ব্রডকাস্ট প্যাকেট চালু করতে true, বন্ধ করতে false।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে।

setMulticastLoopbackMode()

chrome.sockets.udp.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)
: void

হোস্ট থেকে মাল্টিকাস্ট গ্রুপে পাঠানো মাল্টিকাস্ট প্যাকেট হোস্টের কাছে লুপ ব্যাক করা হবে কিনা তা সেট করে।

মনে রাখবেন: Windows এবং Unix-এর মতো সিস্টেমে setMulticastLoopbackMode-এর আচরণ কিছুটা আলাদা। এই অসঙ্গতি তখনই ঘটে যখন একই হোস্টে একাধিক অ্যাপ্লিকেশন একই মাল্টিকাস্ট গ্রুপে যোগ দেয় এবং মাল্টিকাস্ট লুপব্যাক মোডে বিভিন্ন সেটিংস থাকে। Windows-এ, লুপব্যাক বন্ধ থাকা অ্যাপ্লিকেশনগুলি লুপব্যাক প্যাকেটগুলি গ্রহণ করবে না; Unix-এর মতো সিস্টেমে, লুপব্যাক বন্ধ থাকা অ্যাপ্লিকেশনগুলি একই হোস্টে থাকা অন্যান্য অ্যাপ্লিকেশনগুলিতে লুপব্যাক প্যাকেটগুলি পাঠাবে না। MSDN দেখুন: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2

এই পদ্ধতি কল করার জন্য মাল্টিকাস্ট অনুমতির প্রয়োজন নেই।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • সক্ষমিত

    বুলিয়ান

    লুপব্যাক মোড চালু করতে হবে কিনা তা নির্দেশ করুন।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

setMulticastTimeToLive()

chrome.sockets.udp.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)
: void

মাল্টিকাস্ট গ্রুপে পাঠানো মাল্টিকাস্ট প্যাকেটের টাইম-টু-লাইভ সেট করে।

এই পদ্ধতি কল করার জন্য মাল্টিকাস্ট অনুমতির প্রয়োজন নেই।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • ttl

    নম্বর

    টাইম-টু-লাইভ ভ্যালু।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

      অন্তর্নিহিত নেটওয়ার্ক কল থেকে ফলাফল কোড ফেরত এসেছে। নেগেটিভ ভ্যালু থাকলে বুঝতে হবে যে কোনও সমস্যা হয়েছে।

setPaused()

প্রতিশ্রুতি
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

সকেট পজ বা আনপজ করে। পজ করা সকেটকে onReceive ইভেন্ট ফায়ার করা থেকে ব্লক করা হয়েছে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • সাময়িক ভাবে থামানো হয়েছে

    বুলিয়ান

    পজ বা আনপজ করা হবে কিনা তা নির্দেশ করার ফ্ল্যাগ।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    () => void

রিটার্ন

  • <void> প্রমিস

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

update()

প্রতিশ্রুতি
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

সকেট প্রপার্টি আপডেট করে।

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

  • socketId

    নম্বর

    সকেট আইডি।

  • প্রপার্টি

    আপডেট করার জন্য প্রপার্টি।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    () => void

রিটার্ন

  • <void> প্রমিস

    Chrome 121+

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

ইভেন্ট

onReceive

chrome.sockets.udp.onReceive.addListener(
  callback: function,
)

প্রদত্ত সকেটের জন্য UDP প্যাকেট পাওয়া গেলে ইভেন্ট তৈরি হয়।

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

  • কলব্যাক

    ফাংশন

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

    (info: ReceiveInfo) => void

onReceiveError

chrome.sockets.udp.onReceiveError.addListener(
  callback: function,
)

সকেট অ্যাড্রেস ও পোর্টে ডেটার জন্য রানটাইম অপেক্ষা করার সময় নেটওয়ার্কের সমস্যা হলে ইভেন্ট তৈরি হয়। এই ইভেন্টটি উত্থাপিত হলে, সকেটটি পজ করা হয় এবং সকেটটি আবার চালু না হওয়া পর্যন্ত এই সকেটের জন্য আর কোনও onReceive ইভেন্ট উত্থাপিত হবে না।

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

  • কলব্যাক

    ফাংশন

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

    (info: ReceiveErrorInfo) => void