chrome.socket

বিবরণ

TCP এবং UDP কানেকশন ব্যবহার করে নেটওয়ার্কের মাধ্যমে ডেটা পাঠাতে এবং গ্রহণ করতে chrome.socket API ব্যবহার করুন। মনে রাখবেন: Chrome 33 থেকে শুরু করে, এই API-এর পরিবর্তে sockets.udp, sockets.tcp এবং sockets.tcpServer API ব্যবহার করা হয়।

অনুমতি

socket

ধরন

AcceptInfo

প্রপার্টি

  • resultCode

    নম্বর

  • socketId

    নম্বর ঐচ্ছিক

    গ্রহণ করা সকেটের আইডি।

CreateInfo

প্রপার্টি

  • socketId

    নম্বর

    নতুন তৈরি করা সকেটের আইডি।

CreateOptions

NetworkInterface

প্রপার্টি

  • ঠিকানা

    স্ট্রিং

    উপলভ্য IPv4/6 অ্যাড্রেস।

  • নাম

    স্ট্রিং

    অ্যাডাপ্টারের অন্তর্নিহিত নাম। *nix-এ, এটি সাধারণত "eth0", "lo" ইত্যাদি হবে।

  • prefixLength

    নম্বর

    প্রিফিক্সের দৈর্ঘ্য

ReadInfo

প্রপার্টি

  • ডেটা

    ArrayBuffer

  • resultCode

    নম্বর

    অন্তর্নিহিত read() কল থেকে resultCode ফিরে এসেছে।

RecvFromInfo

প্রপার্টি

  • ঠিকানা

    স্ট্রিং

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

  • ডেটা

    ArrayBuffer

  • পোর্ট

    নম্বর

  • resultCode

    নম্বর

    অন্তর্নিহিত recvfrom() কল থেকে resultCode ফেরত এসেছে।

SecureOptions

প্রপার্টি

SocketInfo

প্রপার্টি

  • কানেক্ট করা আছে

    বুলিয়ান

    আন্ডারলাইং সকেট কানেক্ট করা আছে কিনা।

    tcp সকেটের জন্য, রিমোট পিয়ার ডিসকানেক্ট হয়ে গেলেও এটি ট্রু থাকবে। সকেটে রিড বা রাইট করার সময় সমস্যা হতে পারে, যা ইঙ্গিত করে যে এই সকেট disconnect()-এর মাধ্যমে ডিসকানেক্ট করা উচিত।

    udp সকেটের ক্ষেত্রে, এটি শুধু দেখায় যে প্যাকেট পড়া ও লেখার জন্য ডিফল্ট রিমোট অ্যাড্রেস নির্দিষ্ট করা হয়েছে কিনা।

  • localAddress

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

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

  • localPort

    নম্বর ঐচ্ছিক

    অন্তর্নিহিত সকেট বাউন্ড বা কানেক্ট করা থাকলে, এতে লোকাল পোর্ট থাকে।

  • peerAddress

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

    আন্ডারলাইং সকেট কানেক্ট করা থাকলে, পিয়ারের IPv4/6 অ্যাড্রেস থাকে।

  • peerPort

    নম্বর ঐচ্ছিক

    আন্ডারলাইং সকেট কানেক্ট করা থাকলে, কানেক্ট করা পিয়ারের পোর্ট থাকে।

  • socketType

    পাস করা সকেটের ধরন। এটি tcp বা udp হবে।

SocketType

Enum

"tcp"

"udp"

TLSVersionConstraints

প্রপার্টি

  • সর্বাধিক

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

  • মিঃ

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

    TLS-এর ন্যূনতম ও সর্বাধিক গ্রহণযোগ্য ভার্সন। সাপোর্ট করা ভ্যালু হল tls1.2 বা tls1.3।

    tls1 এবং tls1.1 ভ্যালু আর কাজ করবে না। min-এর ভ্যালু এর মধ্যে কোনও একটিতে সেট করা থাকলে, এটি tls1.2-এ সেট করা হবে। max যদি এইসব ভ্যালুর মধ্যে কোনও একটিতে বা অন্য কোনও শনাক্ত না করা ভ্যালুতে সেট করা হয়, তাহলে সেটি উপেক্ষা করা হবে।

WriteInfo

প্রপার্টি

  • bytesWritten

    নম্বর

    পাঠানো বাইটের সংখ্যা বা নেগেটিভ ত্রুটি কোড।

পদ্ধতি

accept()

chrome.socket.accept(
  socketId: number,
  callback: function,
)
: void

এই পদ্ধতি শুধুমাত্র TCP সকেটের ক্ষেত্রে প্রযোজ্য। এই লিসেনিং সার্ভার সকেটে কোনও কানেকশন গ্রহণ করা হলে, কল করার জন্য একটি কলব্যাক ফাংশন রেজিস্টার করে। প্রথমে Listen কল করতে হবে। আগে থেকেই কোনও অ্যাক্টিভ অ্যাকসেপ্ট কলব্যাক থাকলে, এই কলব্যাকটি অবিলম্বে resultCode হিসেবে একটি ত্রুটি সহ কল করা হবে।

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

  • socketId

    নম্বর

    socketId.

  • কলব্যাক

    ফাংশন

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

    (acceptInfo: AcceptInfo) => void

bind()

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

সকেটের জন্য স্থানীয় ঠিকানা বাইন্ড করে। বর্তমানে, এটি TCP সকেট সাপোর্ট করে না।

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

  • socketId

    নম্বর

    socketId.

  • ঠিকানা

    স্ট্রিং

    লোকাল মেশিনের ঠিকানা।

  • পোর্ট

    নম্বর

    লোকাল মেশিনের পোর্ট।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

connect()

chrome.socket.connect(
  socketId: number,
  hostname: string,
  port: number,
  callback: function,
)
: void

রিমোট মেশিনের সাথে সকেট কানেক্ট করে (tcp সকেটের জন্য)। udp সকেটের জন্য, এটি ডিফল্ট অ্যাড্রেস সেট করে যেখানে read() ও write() কলের জন্য প্যাকেট পাঠানো ও পড়া হয়।

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

  • socketId

    নম্বর

    socketId.

  • হোস্টনাম

    স্ট্রিং

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

  • পোর্ট

    নম্বর

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

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

create()

প্রতিশ্রুতি
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

নির্দিষ্ট ধরনের সকেট তৈরি করে যা নির্দিষ্ট রিমোট মেশিনের সাথে কানেক্ট করবে।

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

  • ধরন

    যে ধরনের সকেট তৈরি করতে হবে। tcp বা udp হতে হবে।

  • বিকল্প

    CreateOptions ঐচ্ছিক

    সকেট সংক্রান্ত বিকল্প।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (createInfo: CreateInfo) => void

রিটার্ন

  • Promise<CreateInfo>

    Chrome 121+

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

destroy()

chrome.socket.destroy(
  socketId: number,
)
: void

সকেট নষ্ট করে। তৈরি করা প্রতিটি সকেট ব্যবহারের পরে নষ্ট করে দিতে হবে।

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

  • socketId

    নম্বর

    socketId.

disconnect()

chrome.socket.disconnect(
  socketId: number,
)
: void

সকেট ডিসকানেক্ট করে। UDP সকেটের জন্য, disconnect কোনও অপারেশন নয় তবে কল করার জন্য নিরাপদ।

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

  • socketId

    নম্বর

    socketId.

getInfo()

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

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

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

  • socketId

    নম্বর

    socketId.

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (result: SocketInfo) => void

রিটার্ন

  • Promise<SocketInfo>

    Chrome 121+

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

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)
: void

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

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

  • socketId

    নম্বর

    socketId.

  • কলব্যাক

    ফাংশন

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

    (groups: string[]) => void

    • গ্রুপ

      স্ট্রিং[]

getNetworkList()

প্রতিশ্রুতি
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

এই সিস্টেমে লোকাল অ্যাডাপ্টার সম্পর্কে তথ্য রিট্রিভ করে।

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

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (result: NetworkInterface[]) => void

রিটার্ন

  • Promise<NetworkInterface[]>

    Chrome 121+

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

joinGroup()

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

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

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

  • socketId

    নম্বর

    socketId.

  • ঠিকানা

    স্ট্রিং

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

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

leaveGroup()

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

joinGroup ব্যবহার করে আগে যোগ দেওয়া মাল্টিকাস্ট গ্রুপ থেকে বেরিয়ে আসুন। সকেট ধ্বংস করার বা প্রস্থান করার আগে মাল্টিকাস্ট গ্রুপ ছেড়ে যাওয়ার প্রয়োজন নেই। OS-এর মাধ্যমে এটি অটোমেটিক কল করা হয়।

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

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

  • socketId

    নম্বর

    socketId.

  • ঠিকানা

    স্ট্রিং

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

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

listen()

chrome.socket.listen(
  socketId: number,
  address: string,
  port: number,
  backlog?: number,
  callback: function,
)
: void

এই পদ্ধতি শুধুমাত্র TCP সকেটের ক্ষেত্রে প্রযোজ্য। নির্দিষ্ট পোর্ট ও অ্যাড্রেসে কানেকশনের জন্য অপেক্ষা করে। এর ফলে এটি সার্ভার সকেট হিসেবে কাজ করে এবং ক্লায়েন্ট সকেটের ফাংশন (কানেক্ট, রিড, রাইট) এই সকেটে আর ব্যবহার করা যায় না।

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

  • socketId

    নম্বর

    socketId.

  • ঠিকানা

    স্ট্রিং

    লোকাল মেশিনের ঠিকানা।

  • পোর্ট

    নম্বর

    লোকাল মেশিনের পোর্ট।

  • ব্যাকলগ

    নম্বর ঐচ্ছিক

    সকেটের লিসেন কিউয়ের দৈর্ঘ্য।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

read()

chrome.socket.read(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

প্রদত্ত কানেক্ট করা সকেট থেকে ডেটা পড়ে।

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

  • socketId

    নম্বর

    socketId.

  • bufferSize

    নম্বর ঐচ্ছিক

    রিড বাফারের সাইজ।

  • কলব্যাক

    ফাংশন

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

    (readInfo: ReadInfo) => void

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

প্রদত্ত UDP সকেট থেকে ডেটা গ্রহণ করে।

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

  • socketId

    নম্বর

    socketId.

  • bufferSize

    নম্বর ঐচ্ছিক

    রিসিভ বাফারের সাইজ।

  • কলব্যাক

    ফাংশন

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

    (recvFromInfo: RecvFromInfo) => void

secure()

chrome.socket.secure(
  socketId: number,
  options?: SecureOptions,
  callback: function,
)
: void

কানেক্ট করা TCP ক্লায়েন্ট সকেটের মাধ্যমে TLS ক্লায়েন্ট কানেকশন শুরু করুন।

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

  • socketId

    নম্বর

    ব্যবহার করার জন্য কানেক্ট করা সকেট।

  • বিকল্প

    SecureOptions ঐচ্ছিক

    TLS কানেকশনের জন্য সীমাবদ্ধতা ও প্যারামিটার।

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

sendTo()

chrome.socket.sendTo(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  callback: function,
)
: void

প্রদত্ত UDP সকেটে প্রদত্ত ঠিকানা এবং পোর্টে ডেটা পাঠায়।

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

  • socketId

    নম্বর

    socketId.

  • ডেটা

    ArrayBuffer

    যে ডেটা লিখতে হবে।

  • ঠিকানা

    স্ট্রিং

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

  • পোর্ট

    নম্বর

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

  • কলব্যাক

    ফাংশন

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

    (writeInfo: WriteInfo) => void

setKeepAlive()

chrome.socket.setKeepAlive(
  socketId: number,
  enable: boolean,
  delay?: number,
  callback: function,
)
: void

TCP কানেকশনের জন্য 'কিপ-অ্যালাইভ' কার্যকারিতা চালু বা বন্ধ করে।

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

  • socketId

    নম্বর

    socketId.

  • চালু কর

    বুলিয়ান

    সত্য হলে, কিপ-অ্যালাইভ কার্যকারিতা চালু করুন।

  • বিলম্ব হবে

    নম্বর ঐচ্ছিক

    শেষ ডেটা প্যাকেট পাওয়া এবং প্রথম কিপঅ্যালাইভ প্রোবের মধ্যে বিলম্বের সেকেন্ড সেট করুন। ডিফল্ট হল ০।

  • কলব্যাক

    ফাংশন

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

    (result: boolean) => void

    • ফলাফল

      বুলিয়ান

setMulticastLoopbackMode()

chrome.socket.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

    নম্বর

    socketId.

  • সক্ষমিত

    বুলিয়ান

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

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

setMulticastTimeToLive()

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

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

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

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

  • socketId

    নম্বর

    socketId.

  • ttl

    নম্বর

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

  • কলব্যাক

    ফাংশন

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

    (result: number) => void

    • ফলাফল

      নম্বর

setNoDelay()

chrome.socket.setNoDelay(
  socketId: number,
  noDelay: boolean,
  callback: function,
)
: void

TCP কানেকশনের জন্য TCP_NODELAY সেট করে বা মুছে দেয়। TCP_NODELAY সেট করা হলে, Nagle-এর অ্যালগরিদম বন্ধ করা হবে।

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

  • socketId

    নম্বর

    socketId.

  • noDelay

    বুলিয়ান

    ট্রু হলে, Nagle-এর অ্যালগরিদম বন্ধ করে দেয়।

  • কলব্যাক

    ফাংশন

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

    (result: boolean) => void

    • ফলাফল

      বুলিয়ান

write()

chrome.socket.write(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)
: void

প্রদত্ত কানেক্ট করা সকেটে ডেটা লেখে।

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

  • socketId

    নম্বর

    socketId.

  • ডেটা

    ArrayBuffer

    যে ডেটা লিখতে হবে।

  • কলব্যাক

    ফাংশন

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

    (writeInfo: WriteInfo) => void