chrome.socket

תיאור

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

מאפיינים

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

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

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

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

פרמטרים

  • סוג

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

  • אפשרויות

    CreateOptions אופציונלי

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

  • קריאה חוזרת (callback)

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

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

    (createInfo: CreateInfo) => void

החזרות

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

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

Promise
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

recvFrom()

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

קבלת נתונים מיציאת ה-UDP הנתונה.

פרמטרים

  • socketId

    number

    ה-socketId.

  • bufferSize

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

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

  • קריאה חוזרת (callback)

    פונקציה

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

    (recvFromInfo: RecvFromInfo) => void

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

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

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

פרמטרים

  • socketId

    number

    ה-socketId.

  • נתונים

    ArrayBuffer

    הנתונים שרוצים לכתוב.

  • קריאה חוזרת (callback)

    פונקציה

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

    (writeInfo: WriteInfo) => void