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