תיאור
אפשר להשתמש ב-API של chrome.socket
כדי לשלוח ולקבל נתונים ברשת באמצעות חיבורי TCP ו-UDP. הערה: החל מ-Chrome 33, ממשק ה-API הזה הוצא משימוש לטובת ממשקי ה-API sockets.udp
, sockets.tcp
ו-sockets.tcpServer
.
הרשאות
socket
סוגים
AcceptInfo
מאפיינים
-
resultCode
number
-
socketId
מספר אופציונלי
המזהה של השקע שאושר.
CreateInfo
מאפיינים
-
socketId
number
המזהה של השקע החדש שנוצר.
CreateOptions
NetworkInterface
מאפיינים
-
כתובת
מחרוזת
כתובת ה-IPv4/6 הזמינה.
-
שם
מחרוזת
השם הבסיסי של המתאם. ב-*nix, בדרך כלל זה יהיה eth0, lo וכו'.
-
prefixLength
number
אורך הקידומת
ReadInfo
מאפיינים
-
נתונים
ArrayBuffer
-
resultCode
number
קוד התוצאה שהוחזר מהקריאה הבסיסית read().
RecvFromInfo
מאפיינים
-
כתובת
מחרוזת
הכתובת של המכונה המרוחקת.
-
נתונים
ArrayBuffer
-
יציאה
number
-
resultCode
number
קוד התוצאה שהוחזר מהקריאה הבסיסית recvfrom().
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
number
מספר הבייטים שנשלחו או קוד שגיאה שלילי.
Methods
accept()
chrome.socket.accept(
socketId: number,
callback: function,
)
השיטה הזו חלה רק על שקעי TCP. רישום של פונקציית קריאה חוזרת שתופעל כשיתקבל חיבור ביציאת ה-socket של שרת ההאזנה. קודם צריך להפעיל את Listen. אם כבר יש קריאה חוזרת פעילה עם הסכמה, הקריאה החוזרת הזו תופעל באופן מיידי עם שגיאה כקוד התוצאה.
פרמטרים
-
socketId
number
ה-socketId.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(acceptInfo: AcceptInfo) => void
-
acceptInfo
-
bind()
chrome.socket.bind(
socketId: number,
address: string,
port: number,
callback: function,
)
קישור הכתובת המקומית ליציאה. בשלב זה אין תמיכה ביציאת TCP.
פרמטרים
-
socketId
number
ה-socketId.
-
כתובת
מחרוזת
הכתובת של המכונה המקומית.
-
יציאה
number
היציאה של המחשב המקומי.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
connect()
chrome.socket.connect(
socketId: number,
hostname: string,
port: number,
callback: function,
)
חיבור השקע למכונה המרוחקת (לשקע tcp
). ביציאה מסוג udp
, ההגדרה הזו קובעת את כתובת ברירת המחדל שאליה נשלחות החבילות וממנה הן נקראות בקריאות read()
ו-write()
.
פרמטרים
-
socketId
number
ה-socketId.
-
hostname
מחרוזת
שם המארח או כתובת ה-IP של המכונה המרוחקת.
-
יציאה
number
היציאה של המכונה המרוחקת.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
create()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
)
יצירת שקע מהסוג שצוין שיתחבר למכונה המרוחקת שצוינה.
פרמטרים
-
סוג
סוג השקע שייווצר. הערך חייב להיות
tcp
אוudp
. -
אפשרויות
CreateOptions אופציונלי
אפשרויות השקע.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(createInfo: CreateInfo) => void
-
createInfo
-
החזרות
-
Promise<CreateInfo>
Chrome מגרסה 121 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
destroy()
chrome.socket.destroy(
socketId: number,
)
הורדת הסוכנות. צריך למחוק כל שקע שנוצר אחרי השימוש בו.
פרמטרים
-
socketId
number
ה-socketId.
disconnect()
chrome.socket.disconnect(
socketId: number,
)
מנתקים את השקע. בסוקט של UDP, disconnect
היא פעולה לא קיימת, אבל אפשר לבצע קריאה אליה בבטחה.
פרמטרים
-
socketId
number
ה-socketId.
getInfo()
chrome.socket.getInfo(
socketId: number,
callback?: function,
)
אחזור המצב של השקע הנתון.
פרמטרים
-
socketId
number
ה-socketId.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(result: SocketInfo) => void
-
תוצאה
-
החזרות
-
Promise<SocketInfo>
Chrome מגרסה 121 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
getJoinedGroups()
chrome.socket.getJoinedGroups(
socketId: number,
callback: function,
)
אחזור של כתובות הקבוצה של ה-multicast שהשקע צורף אליה כרגע.
פרמטרים
-
socketId
number
ה-socketId.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(groups: string[]) => void
-
קבוצות
string[]
-
getNetworkList()
chrome.socket.getNetworkList(
callback?: function,
)
אחזור מידע על מתאמים מקומיים במערכת הזו.
פרמטרים
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(result: NetworkInterface[]) => void
-
תוצאה
-
החזרות
-
Promise<NetworkInterface[]>
Chrome מגרסה 121 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
joinGroup()
chrome.socket.joinGroup(
socketId: number,
address: string,
callback: function,
)
להצטרף לקבוצת ה-multicast ולהתחיל לקבל חבילות מהקבוצה הזו. השקע צריך להיות מסוג UDP וצריך לשייך אותו ליציאה מקומית לפני שמפעילים את השיטה הזו.
פרמטרים
-
socketId
number
ה-socketId.
-
כתובת
מחרוזת
כתובת הקבוצה שאליה רוצים להצטרף. אין תמיכה בשמות דומיינים.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
leaveGroup()
chrome.socket.leaveGroup(
socketId: number,
address: string,
callback: function,
)
יוצאים מקבוצת ה-multicast שהצטרפתם אליה באמצעות joinGroup
. אין צורך לעזוב את קבוצת ה-multicast לפני שמוחקים את השקע או יוצאים. מערכת ההפעלה קוראת לזה באופן אוטומטי.
עזיבת הקבוצה תמנע מהנתב לשלוח חבילות נתונים של Multicast למארח המקומי, בהנחה שאין תהליך אחר במארח שעדיין מצטרף לקבוצה.
פרמטרים
-
socketId
number
ה-socketId.
-
כתובת
מחרוזת
כתובת הקבוצה שרוצים לעזוב. אין תמיכה בשמות דומיינים.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
listen()
chrome.socket.listen(
socketId: number,
address: string,
port: number,
backlog?: number,
callback: function,
)
השיטה הזו חלה רק על שקעי TCP. המערכת מאזינה לחיבורים ביציאה ובכתובת שצוינו. כך הסוקט הופך למעשה לסוקט שרת, ולא ניתן יותר להשתמש בסוקט הזה בפונקציות של סוקט לקוח (התחברות, קריאה וכתיבה).
פרמטרים
-
socketId
number
ה-socketId.
-
כתובת
מחרוזת
הכתובת של המכונה המקומית.
-
יציאה
number
היציאה של המחשב המקומי.
-
עומס עבודה שנצבר
מספר אופציונלי
האורך של תור ההאזנה של השקע.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
read()
chrome.socket.read(
socketId: number,
bufferSize?: number,
callback: function,
)
קריאת נתונים מהשקע המחובר הנתון.
פרמטרים
-
socketId
number
ה-socketId.
-
bufferSize
מספר אופציונלי
גודל המאגר לקריאה.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(readInfo: ReadInfo) => void
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
)
קבלת נתונים מיציאת ה-UDP הנתונה.
פרמטרים
-
socketId
number
ה-socketId.
-
bufferSize
מספר אופציונלי
גודל מאגר הקבלה.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
secure()
chrome.socket.secure(
socketId: number,
options?: SecureOptions,
callback: function,
)
התחלת חיבור לקוח TLS דרך שקע לקוח TCP מחובר.
פרמטרים
-
socketId
number
השקע המחובר שבו רוצים להשתמש.
-
אפשרויות
SecureOptions אופציונלי
אילוצים ופרמטרים של חיבור ה-TLS.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
sendTo()
chrome.socket.sendTo(
socketId: number,
data: ArrayBuffer,
address: string,
port: number,
callback: function,
)
שליחת נתונים ביציאת ה-UDP שצוינה לכתובת וליציאה שצוינו.
פרמטרים
-
socketId
number
ה-socketId.
-
נתונים
ArrayBuffer
הנתונים שרוצים לכתוב.
-
כתובת
מחרוזת
הכתובת של המכונה המרוחקת.
-
יציאה
number
היציאה של המכונה המרוחקת.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(writeInfo: WriteInfo) => void
-
writeInfo
-
setKeepAlive()
chrome.socket.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
)
הפעלה או השבתה של הפונקציונליות של keep-alive לחיבור TCP.
פרמטרים
-
socketId
number
ה-socketId.
-
enable
בוליאני
אם הערך הוא true, המערכת מפעילה את הפונקציונליות של keep-alive.
-
עיכוב
מספר אופציונלי
הגדרת מספר השניות של העיכוב בין חבילת הנתונים האחרונה שהתקבלה לבין הבדיקה הראשונה של keepalive. ברירת המחדל היא 0.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: boolean) => void
-
תוצאה
בוליאני
-
setMulticastLoopbackMode()
chrome.socket.setMulticastLoopbackMode(
socketId: number,
enabled: boolean,
callback: function,
)
הגדרה של חבילות ה-multicast שנשלחות מהמארח לקבוצת ה-multicast, אם הן יחזרו למארח בלולאה.
הערה: ההתנהגות של setMulticastLoopbackMode
שונה במקצת בין מערכות Windows למערכות דמויות-Unix. חוסר העקביות מתרחש רק כשיש יותר מאפליקציה אחת באותו מארח שמצטרפת לאותה קבוצת Multicast, עם הגדרות שונות במצב loopback של Multicast. ב-Windows, האפליקציות עם loopback מושבת לא יקבלו את חבילות ה-loopback. לעומת זאת, במערכות כמו Unix, האפליקציות עם loopback מושבת לא ישלחו את חבילות ה-loopback לאפליקציות אחרות באותו מארח. מידע נוסף זמין ב-MSDN: http://goo.gl/6vqbj
כדי לקרוא ל-method הזה לא נדרשות הרשאות להעברה קבוצתית (multicast).
פרמטרים
-
socketId
number
ה-socketId.
-
פעיל
בוליאני
מציינים אם להפעיל את מצב הלולאה החוזרת.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
setMulticastTimeToLive()
chrome.socket.setMulticastTimeToLive(
socketId: number,
ttl: number,
callback: function,
)
הגדרת משך החיים של חבילות ה-multicast שנשלחות לקבוצת ה-multicast.
כדי לקרוא ל-method הזה לא נדרשות הרשאות להעברה קבוצתית (multicast).
פרמטרים
-
socketId
number
ה-socketId.
-
ttl
number
ערך אורך החיים.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: number) => void
-
תוצאה
number
-
setNoDelay()
chrome.socket.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
)
הגדרה או ניקוי של TCP_NODELAY
לחיבור TCP. האלגוריתם של Nagle יושבת כשמגדירים את TCP_NODELAY
.
פרמטרים
-
socketId
number
ה-socketId.
-
noDelay
בוליאני
אם הערך הוא True, האלגוריתם של Nagle יושבת.
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(result: boolean) => void
-
תוצאה
בוליאני
-
write()
chrome.socket.write(
socketId: number,
data: ArrayBuffer,
callback: function,
)
כתיבת נתונים בשקע המחובר.