chrome.socket

תיאור

אפשר להשתמש ב-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

מאפיינים

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

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

Promise
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)
: Promise<CreateInfo>

יוצרת שקע מהסוג שצוין שיתחבר למכונה המרוחקת שצוינה.

פרמטרים

  • סוג

    סוג השקע שרוצים ליצור. הערך חייב להיות tcp או udp.

  • options

    CreateOptions אופציונלי

    אפשרויות השקע.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (createInfo: CreateInfo) => void

החזרות

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

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

Promise
chrome.socket.getNetworkList(
  callback?: function,
)
: Promise<NetworkInterface[]>

אחזור מידע על מתאמים מקומיים במערכת הזו.

פרמטרים

החזרות

  • 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

recvFrom()

chrome.socket.recvFrom(
  socketId: number,
  bufferSize?: number,
  callback: function,
)
: void

מקבל נתונים משקע ה-UDP שצוין.

פרמטרים

  • socketId

    number

    מזהה השקע.

  • bufferSize

    מספר אופציונלי

    גודל מאגר הקבלה.

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (recvFromInfo: RecvFromInfo) => void

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

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

כתיבת נתונים בשקע המחובר שצוין.

פרמטרים

  • socketId

    number

    מזהה השקע.

  • נתונים

    ArrayBuffer

    הנתונים לכתיבה.

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (writeInfo: WriteInfo) => void