chrome.sockets.udp

ब्यौरा

यूडीपी कनेक्शन का इस्तेमाल करके, नेटवर्क पर डेटा भेजने और पाने के लिए, chrome.sockets.udp API का इस्तेमाल करें. यह एपीआई, "सॉकेट" एपीआई में पहले से मौजूद यूडीपी की सुविधा की जगह लेता है.

मेनिफ़ेस्ट

इस एपीआई का इस्तेमाल करने के लिए, इन कुंजियों का एलान मेनिफ़ेस्ट में करना ज़रूरी है.

"sockets"

टाइप

CreateInfo

प्रॉपर्टी

  • socketId

    संख्या

    नए बनाए गए सॉकेट का आईडी. ध्यान दें कि इस एपीआई से बनाए गए सॉकेट आईडी, अन्य एपीआई से बनाए गए सॉकेट आईडी के साथ काम नहीं करते. जैसे, बंद किया गया [socket](../socket/) एपीआई.

DnsQueryType

Chrome 103 और इसके बाद के वर्शन

डीएनएस रिज़ॉल्यूशन की प्राथमिकताएं. डिफ़ॉल्ट वैल्यू any है. यह मौजूदा ओएस कॉन्फ़िगरेशन का इस्तेमाल करती है. इससे IPv4 या IPv6 मिल सकता है. ipv4 IPv4 और ipv6 IPv6 को लागू करता है.

Enum

"any"

"ipv4"

"ipv6"

ReceiveErrorInfo

प्रॉपर्टी

  • resultCode

    संख्या

    recvfrom() कॉल से मिला नतीजा कोड.

  • socketId

    संख्या

    सॉकेट आईडी.

ReceiveInfo

प्रॉपर्टी

  • डेटा

    ArrayBuffer

    यूडीपी पैकेट का कॉन्टेंट (मौजूदा बफ़र साइज़ के हिसाब से काटा गया).

  • remoteAddress

    स्ट्रिंग

    यह उस होस्ट का पता होता है जिससे पैकेट आता है.

  • remotePort

    संख्या

    यह उस होस्ट का पोर्ट होता है जिससे पैकेट आता है.

  • socketId

    संख्या

    सॉकेट आईडी.

SendInfo

प्रॉपर्टी

  • bytesSent

    number optional

    भेजे गए बाइट की संख्या (अगर result == 0 है)

  • resultCode

    संख्या

    नेटवर्क कॉल से मिला नतीजा कोड. नेगेटिव वैल्यू से गड़बड़ी का पता चलता है.

SocketInfo

प्रॉपर्टी

  • bufferSize

    number optional

    डेटा पाने के लिए इस्तेमाल किए गए बफ़र का साइज़. अगर बफ़र साइज़ के बारे में साफ़ तौर पर नहीं बताया गया है, तो वैल्यू नहीं दी जाती है.

  • localAddress

    string ज़रूरी नहीं है

    अगर सॉकेट बाउंड है, तो इसमें इसका लोकल IPv4/6 पता होता है.

  • localPort

    number optional

    अगर सॉकेट बाउंड है, तो इसमें उसका लोकल पोर्ट होता है.

  • नाम

    string ज़रूरी नहीं है

    सॉकेट से जुड़ी, ऐप्लिकेशन के हिसाब से तय की गई स्ट्रिंग.

  • रोका गया

    बूलियन

    इस फ़्लैग से पता चलता है कि क्या सॉकेट को onReceive इवेंट फ़ायर करने से ब्लॉक किया गया है.

  • अनवरत

    बूलियन

    इस फ़्लैग से पता चलता है कि ऐप्लिकेशन के निलंबित होने पर, सॉकेट खुला रहता है या नहीं (SocketProperties.persistent देखें).

  • socketId

    संख्या

    सॉकेट आइडेंटिफ़ायर.

SocketProperties

प्रॉपर्टी

  • bufferSize

    number optional

    डेटा पाने के लिए इस्तेमाल किए गए बफ़र का साइज़. अगर यूडीपी पैकेट पाने के लिए बफ़र बहुत छोटा है, तो डेटा खो जाता है. डिफ़ॉल्ट वैल्यू 4096 है.

  • नाम

    string ज़रूरी नहीं है

    ऐप्लिकेशन के हिसाब से तय की गई स्ट्रिंग, जो सॉकेट से जुड़ी होती है.

  • अनवरत

    बूलियन ज़रूरी नहीं है

    यह फ़्लैग दिखाता है कि ऐप्लिकेशन का इवेंट पेज अनलोड होने पर, सॉकेट खुला रहता है या नहीं. इसके बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन के लाइफ़साइकल को मैनेज करना लेख पढ़ें. डिफ़ॉल्ट वैल्यू "false" होती है. ऐप्लिकेशन लोड होने पर, persistent=true के साथ पहले से खुले हुए किसी भी सॉकेट को getSockets की मदद से फ़ेच किया जा सकता है.

तरीके

bind()

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

यह सॉकेट के लिए लोकल पता और पोर्ट बाइंड करता है. क्लाइंट सॉकेट के लिए, हमारा सुझाव है कि आप पोर्ट 0 का इस्तेमाल करें, ताकि प्लैटफ़ॉर्म कोई खाली पोर्ट चुन सके.

bind ऑपरेशन पूरा होने के बाद, बताए गए पते/पोर्ट पर यूडीपी पैकेट मिलने पर onReceive इवेंट ट्रिगर होते हैं. हालांकि, ऐसा तब नहीं होता, जब सॉकेट को रोका गया हो.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • पता

    स्ट्रिंग

    लोकल मशीन का पता. डीएनएस नाम, IPv4, और IPv6 फ़ॉर्मैट इस्तेमाल किए जा सकते हैं. सभी लोकल नेटवर्क इंटरफ़ेस से पैकेट स्वीकार करने के लिए, "0.0.0.0" का इस्तेमाल करें.

  • पोर्ट

    संख्या

    लोकल मशीन का पोर्ट. किसी खाली पोर्ट से बाइंड करने के लिए, "0" का इस्तेमाल करें.

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (result: number) => void

    • नतीजा

      संख्या

      नेटवर्क कॉल से मिला नतीजा कोड. नेगेटिव वैल्यू से गड़बड़ी का पता चलता है.

close()

Promise
chrome.sockets.udp.close(
  socketId: number,
  callback?: function,
)
: Promise<void>

यह सॉकेट को बंद करता है और उस पते/पोर्ट को रिलीज़ करता है जिससे सॉकेट जुड़ा होता है. इस्तेमाल के बाद, बनाए गए हर सॉकेट को बंद कर देना चाहिए. फ़ंक्शन को कॉल करने के तुरंत बाद, सॉकेट आईडी मान्य नहीं रहता. हालांकि, सॉकेट बंद होने की गारंटी सिर्फ़ तब दी जाती है, जब कॉलबैक शुरू हो जाता है.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

create()

Promise
chrome.sockets.udp.create(
  properties?: SocketProperties,
  callback?: function,
)
: Promise<CreateInfo>

यह दी गई प्रॉपर्टी के साथ एक यूडीपी सॉकेट बनाता है.

पैरामीटर

  • प्रॉपर्टी

    SocketProperties ज़रूरी नहीं है

    सॉकेट की प्रॉपर्टी (ज़रूरी नहीं).

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (createInfo: CreateInfo) => void

    • createInfo

      सॉकेट बनाने का नतीजा.

रिटर्न

  • Promise<CreateInfo>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getInfo()

Promise
chrome.sockets.udp.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

यह फ़ंक्शन, दिए गए सॉकेट की स्थिति को वापस लाता है.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (socketInfo: SocketInfo) => void

    • socketInfo

      सॉकेट की जानकारी देने वाला ऑब्जेक्ट.

रिटर्न

  • Promise<SocketInfo>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getJoinedGroups()

Promise
chrome.sockets.udp.getJoinedGroups(
  socketId: number,
  callback?: function,
)
: Promise<string[]>

यह फ़ंक्शन, उन मल्टीकास्ट ग्रुप के पते दिखाता है जिनसे सॉकेट फ़िलहाल जुड़ा हुआ है.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (groups: string[]) => void

    • समूह

      string[]

      उन ग्रुप की ऐरे जिनमें सॉकेट शामिल हुआ.

रिटर्न

  • Promise<string[]>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getSockets()

Promise
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 का इस्तेमाल करके पहले से शामिल किए गए मल्टीकास्ट ग्रुप को छोड़ देता है. अगर आपको सॉकेट का इस्तेमाल जारी रखना है, तो कॉल करना ज़रूरी है. ऐसा इसलिए, क्योंकि सॉकेट बंद होने पर ओएस इसे अपने-आप कर देगा.

ग्रुप छोड़ने पर, राउटर लोकल होस्ट को मल्टीकास्ट डेटाग्राम नहीं भेजेगा. हालांकि, ऐसा तब होगा, जब होस्ट पर कोई दूसरी प्रोसेस अब भी ग्रुप में शामिल न हो.

पैरामीटर

  • 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()

Promise
chrome.sockets.udp.setPaused(
  socketId: number,
  paused: boolean,
  callback?: function,
)
: Promise<void>

यह सॉकेट को रोकता है या फिर से शुरू करता है. रोके गए सॉकेट को onReceive इवेंट ट्रिगर करने से रोका जाता है.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • रोका गया

    बूलियन

    यह फ़्लैग बताता है कि वीडियो को रोकना है या फिर से शुरू करना है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

update()

Promise
chrome.sockets.udp.update(
  socketId: number,
  properties: SocketProperties,
  callback?: function,
)
: Promise<void>

सॉकेट की प्रॉपर्टी अपडेट करता है.

पैरामीटर

  • socketId

    संख्या

    सॉकेट आईडी.

  • प्रॉपर्टी

    अपडेट की जाने वाली प्रॉपर्टी.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 121 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

इवेंट

onReceive

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

यह इवेंट तब ट्रिगर होता है, जब दिए गए सॉकेट के लिए कोई यूडीपी पैकेट मिला हो.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (info: ReceiveInfo) => void

onReceiveError

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

यह इवेंट तब ट्रिगर होता है, जब रनटाइम, सॉकेट पते और पोर्ट पर डेटा का इंतज़ार कर रहा होता है और इस दौरान नेटवर्क से जुड़ी कोई गड़बड़ी होती है. इस इवेंट के होने पर, सॉकेट को रोक दिया जाता है. साथ ही, जब तक सॉकेट को फिर से शुरू नहीं किया जाता, तब तक इस सॉकेट के लिए कोई और onReceive इवेंट नहीं होगा.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (info: ReceiveErrorInfo) => void