বিবরণ
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
প্রপার্টি
-
tlsVersion
TLSVersionConstraints ঐচ্ছিক
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
-
acceptInfo
-
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
-
createInfo
-
রিটার্ন
-
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
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
প্রদত্ত UDP সকেট থেকে ডেটা গ্রহণ করে।
প্যারামিটারগুলি
-
socketId
নম্বর
socketId.
-
bufferSize
নম্বর ঐচ্ছিক
রিসিভ বাফারের সাইজ।
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
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
-
writeInfo
-
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
প্রদত্ত কানেক্ট করা সকেটে ডেটা লেখে।