תיאור
אפשר להשתמש ב-API של chrome.sockets.udp כדי לשלוח ולקבל נתונים דרך הרשת באמצעות חיבורי UDP. ה-API הזה מחליף את פונקציונליות ה-UDP שהייתה בעבר ב-API של socket.
מניפסט
סוגים
CreateInfo
מאפיינים
-
socketId
number
המזהה של השקע החדש שנוצר. חשוב לשים לב שמזהי שקעים שנוצרו מה-API הזה לא תואמים למזהי שקעים שנוצרו מממשקי API אחרים, כמו ה-API
[socket](../socket/)שהוצא משימוש.
DnsQueryType
העדפות של פענוח DNS. ברירת המחדל היא any, והיא משתמשת בהגדרת מערכת ההפעלה הנוכחית שעשויה להחזיר IPv4 או IPv6. ipv4 מאלץ שימוש ב-IPv4, ו-ipv6 מאלץ שימוש ב-IPv6.
טיפוסים בני מנייה (enum)
"any"
"ipv4"
"ipv6"
ReceiveErrorInfo
מאפיינים
-
resultCode
number
קוד התוצאה שהוחזר מהקריאה הבסיסית ל-()recvfrom.
-
socketId
number
מזהה השקע.
ReceiveInfo
מאפיינים
-
נתונים
ArrayBuffer
תוכן חבילת ה-UDP (נחתך לגודל הנוכחי של שטח האחסון הזמני).
-
remoteAddress
מחרוזת
הכתובת של המארח שממנו מגיעה החבילה.
-
remotePort
number
היציאה של המארח שממנו מגיעה החבילה.
-
socketId
number
מזהה השקע.
SendInfo
מאפיינים
-
bytesSent
מספר אופציונלי
מספר הבייטים שנשלחו (אם result == 0)
-
resultCode
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
SocketInfo
מאפיינים
-
bufferSize
מספר אופציונלי
גודל המאגר שמשמש לקבלת נתונים. אם לא צוין במפורש גודל מאגר נתונים, הערך לא יופיע.
-
localAddress
מחרוזת אופציונלי
אם ה-socket הבסיסי מקושר, הוא מכיל את כתובת ה-IPv4/6 המקומית שלו.
-
localPort
מספר אופציונלי
אם השקע הבסיסי קשור, הוא מכיל את היציאה המקומית שלו.
-
שם
מחרוזת אופציונלי
מחרוזת שמוגדרת על ידי האפליקציה ומשויכת לשקע.
-
מושהה
בוליאני
סימון שמציין אם ה-socket חסום להפעלת אירועי onReceive.
-
קבוע
בוליאני
דגל שמציין אם השקע נשאר פתוח כשהאפליקציה מושעית (ראו
SocketProperties.persistent). -
socketId
number
מזהה השקע.
SocketProperties
מאפיינים
-
bufferSize
מספר אופציונלי
גודל המאגר שמשמש לקבלת נתונים. אם המאגר קטן מדי לקבלת חבילת ה-UDP, הנתונים יאבדו. ערך ברירת המחדל הוא 4096.
-
שם
מחרוזת אופציונלי
מחרוזת שמוגדרת על ידי האפליקציה ומשויכת לשקע.
-
קבוע
בוליאני אופציונלי
סימון שמציין אם ה-socket נשאר פתוח כשדף האירועים של האפליקציה נפרק (ראו ניהול מחזור החיים של האפליקציה). ערך ברירת המחדל הוא "false". כשהאפליקציה נטענת, אפשר לאחזר באמצעות
getSocketsאת כל השקעים שנפתחו קודם לכן עם persistent=true.
Methods
bind()
chrome.sockets.udp.bind(
socketId: number,
address: string,
port: number,
callback: function,
): void
מקשר את הכתובת המקומית והיציאה של השקע. בשקע לקוח (client socket), מומלץ להשתמש ביציאה 0 כדי לאפשר לפלטפורמה לבחור יציאה פנויה.
אחרי שהפעולה bind מסתיימת, אירועי onReceive מופעלים כשחבילות UDP מגיעות לכתובת או ליציאה שצוינו, אלא אם השקע מושהה.
פרמטרים
-
socketId
number
מזהה השקע.
-
כתובת
מחרוזת
הכתובת של המכונה המקומית. יש תמיכה בפורמטים של שם DNS, IPv4 ו-IPv6. צריך להשתמש בערך "0.0.0.0" כדי לקבל חבילות מכל ממשקי הרשת המקומיים הזמינים.
-
יציאה
number
היציאה של המכונה המקומית. כדי לקשר ליציאה פנויה, צריך להשתמש בערך "0".
-
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
-
close()
chrome.sockets.udp.close(
socketId: number,
callback?: function,
): Promise<void>
סוגר את השקע ומשחרר את הכתובת או היציאה שהשקע קשור אליהן. כל שקע שנוצר צריך להיסגר אחרי השימוש. מזהה השקע כבר לא תקף ברגע שהפונקציה נקראת. עם זאת, השקע ייסגר רק כשהקריאה החוזרת (callback) תופעל.
פרמטרים
-
socketId
number
מזהה השקע.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
create()
chrome.sockets.udp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
יוצרת שקע UDP עם המאפיינים הנתונים.
פרמטרים
-
נכסים
SocketProperties אופציונלי
מאפייני השקע (אופציונלי).
-
callback
function optional
הפרמטר
callbackנראה כך:(createInfo: CreateInfo) => void
-
createInfo
התוצאה של יצירת השקע.
-
החזרות
-
Promise<CreateInfo>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getInfo()
chrome.sockets.udp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
אחזור המצב של השקע הנתון.
פרמטרים
-
socketId
number
מזהה השקע.
-
callback
function optional
הפרמטר
callbackנראה כך:(socketInfo: SocketInfo) => void
-
socketInfo
אובייקט שמכיל את פרטי השקע.
-
החזרות
-
Promise<SocketInfo>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getJoinedGroups()
chrome.sockets.udp.getJoinedGroups(
socketId: number,
callback?: function,
): Promise<string[]>
מקבלת את כתובות קבוצת ה-multicast שהשקע מחובר אליהן כרגע.
פרמטרים
-
socketId
number
מזהה השקע.
-
callback
function optional
הפרמטר
callbackנראה כך:(groups: string[]) => void
-
קבוצות
string[]
מערך של קבוצות שה-socket הצטרף אליהן.
-
החזרות
-
Promise<string[]>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getSockets()
chrome.sockets.udp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
אחזור רשימת השקעים הפתוחים כרגע שבבעלות האפליקציה.
פרמטרים
-
callback
function optional
הפרמטר
callbackנראה כך:(socketInfos: SocketInfo[]) => void
-
socketInfos
מערך של אובייקטים שמכילים מידע על שקעים.
-
החזרות
-
Promise<SocketInfo[]>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
joinGroup()
chrome.sockets.udp.joinGroup(
socketId: number,
address: string,
callback: function,
): void
מצטרף לקבוצת ה-multicast ומתחיל לקבל חבילות מהקבוצה הזו. צריך לקשר את השקע ליציאה מקומית לפני שמפעילים את ה-method הזו.
פרמטרים
-
socketId
number
מזהה השקע.
-
כתובת
מחרוזת
כתובת הקבוצה שרוצים להצטרף אליה. אין תמיכה בשמות דומיינים.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
-
leaveGroup()
chrome.sockets.udp.leaveGroup(
socketId: number,
address: string,
callback: function,
): void
עזיבת קבוצת ה-multicast שהצטרפתם אליה קודם באמצעות joinGroup. צריך להפעיל את הפונקציה הזו רק אם אתם מתכננים להמשיך להשתמש ב-socket לאחר מכן, כי מערכת ההפעלה תעשה את זה באופן אוטומטי כשה-socket ייסגר.
עזיבת הקבוצה תמנע מהנתב לשלוח חבילות נתונים ב-multicast למארח המקומי, בהנחה שאף תהליך אחר במארח עדיין לא הצטרף לקבוצה.
פרמטרים
-
socketId
number
מזהה השקע.
-
כתובת
מחרוזת
כתובת הקבוצה שרוצים לעזוב. אין תמיכה בשמות דומיינים.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
-
send()
chrome.sockets.udp.send(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
dnsQueryType?: DnsQueryType,
callback: function,
): void
שליחת נתונים בשקע הנתון לכתובת וליציאה הנתונות. צריך לקשר את השקע ליציאה מקומית לפני שמפעילים את ה-method הזו.
פרמטרים
-
socketId
number
מזהה השקע.
-
נתונים
ArrayBuffer
הנתונים שרוצים לשלוח.
-
כתובת
מחרוזת
הכתובת של המכונה המרוחקת.
-
יציאה
number
היציאה של המכונה המרוחקת.
-
dnsQueryType
DnsQueryType אופציונלי
Chrome מגרסה 103 ואילךהעדפת הרזולוציה של הכתובת.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(sendInfo: SendInfo) => void
-
sendInfo
התוצאה של השיטה
send.
-
setBroadcast()
chrome.sockets.udp.setBroadcast(
socketId: number,
enabled: boolean,
callback: function,
): void
הפעלה או השבתה של חבילות שידור בשקע הזה.
פרמטרים
-
socketId
number
מזהה השקע.
-
פעיל
בוליאני
trueכדי להפעיל חבילות שידור,falseכדי להשבית אותן. -
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית.
-
setMulticastLoopbackMode()
chrome.sockets.udp.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
): void
ההגדרה הזו קובעת אם חבילות multicast שנשלחות מהמארח לקבוצת ה-multicast יוחזרו למארח.
הערה: ההתנהגות של setMulticastLoopbackMode שונה קצת בין מערכות Windows למערכות דמויות Unix. חוסר העקביות קורה רק כשיש יותר מאפליקציה אחת באותו מארח שמצטרפת לאותה קבוצת multicast, כשיש להן הגדרות שונות במצב multicast loopback. ב-Windows, אפליקציות שהלולאה החוזרת שלהן מושבתת לא יקבלו את חבילות הלולאה החוזרת. במערכות כמו Unix, אפליקציות שהלולאה החוזרת שלהן מושבתת לא ישלחו את חבילות הלולאה החוזרת לאפליקציות אחרות באותו מארח. אפשר לעיין ב-MSDN: https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2
כדי להפעיל את ה-method הזה לא נדרשות הרשאות multicast.
פרמטרים
-
socketId
number
מזהה השקע.
-
פעיל
בוליאני
מציינים אם להפעיל את מצב הלולאה החוזרת.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
-
setMulticastTimeToLive()
chrome.sockets.udp.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
): void
מגדירה את משך החיים של חבילות נתונים ב-multicast שנשלחות לקבוצת ה-multicast.
כדי להפעיל את ה-method הזה לא נדרשות הרשאות multicast.
פרמטרים
-
socketId
number
מזהה השקע.
-
ttl
number
ערך זמן החיים.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(result: number) => void
-
תוצאה
number
קוד התוצאה שהוחזר מהקריאה לרשת הבסיסית. ערך שלילי מציין שגיאה.
-
setPaused()
chrome.sockets.udp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
משהה או מבטל את ההשהיה של שקע. סוקט מושהה לא יכול להפעיל אירועי onReceive.
פרמטרים
-
socketId
number
מזהה השקע.
-
מושהה
בוליאני
סימון שמציין אם להשהות או לבטל את ההשהיה.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
update()
chrome.sockets.udp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
): Promise<void>
עדכון מאפייני השקע.
פרמטרים
-
socketId
number
מזהה השקע.
-
נכסים
המאפיינים שצריך לעדכן.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
אירועים
onReceive
chrome.sockets.udp.onReceive.addListener(
callback: function,
)
אירוע שמופעל כשמתקבלת חבילת UDP עבור השקע הנתון.
פרמטרים
-
callback
פונקציה
הפרמטר
callbackנראה כך:(info: ReceiveInfo) => void
-
מידע
-
onReceiveError
chrome.sockets.udp.onReceiveError.addListener(
callback: function,
)
אירוע שמופעל כשיש שגיאה בחיבור לרשת בזמן שסביבת זמן הריצה ממתינה לנתונים בכתובת השקע וביציאה. אחרי שהאירוע הזה מופעל, ה-socket מושהה ולא יופעלו עוד אירועי onReceive ב-socket הזה עד שהוא יופעל מחדש.
פרמטרים
-
callback
פונקציה
הפרמטר
callbackנראה כך:(info: ReceiveErrorInfo) => void
-
מידע
-