chrome.socket

תיאור

שימוש ב-API chrome.socket כדי לשלוח ולקבל נתונים ברשת באמצעות חיבורי TCP ו-UDP. הערה: החל מגרסה 33 של Chrome, ה-API הזה הוצא משימוש והוחלף בממשק ה-API של sockets.udp, sockets.tcp ו-sockets.tcpServer.

הרשאות

socket

סוגים

AcceptInfo

תכונות

  • resultCode

    מספר

  • socketId

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

    המזהה של השקע המקובל.

CreateInfo

תכונות

  • socketId

    מספר

    המזהה של השקע החדש שנוצר.

CreateOptions

NetworkInterface

תכונות

  • כתובת

    מחרוזת

    כתובת ה-IPv4/6 הזמינה.

  • name

    מחרוזת

    השם הבסיסי של המתאם. ב-*nix, הטקסט הוא בדרך כלל "eth0", "lo" וכו'.

  • prefixLength

    מספר

    אורך הקידומת

ReadInfo

תכונות

  • נתונים

    ArrayBuffer

  • resultCode

    מספר

    resultCode שהוחזר מקריאת ה-read() הבסיסית.

RecvFromInfo

תכונות

  • כתובת

    מחרוזת

    הכתובת של המכונה המרוחקת.

  • נתונים

    ArrayBuffer

  • יציאה

    מספר

  • resultCode

    מספר

    resultCode שהוחזר מהקריאה הבסיסית recvfrom() .

SecureOptions

תכונות

SocketInfo

תכונות

  • מחובר

    boolean

    האם השקע הבסיסי מחובר.

    עבור שקעים של tcp, הערך יישאר True גם אם הצד השני בשיחה התנתק. קריאה או כתיבה לשקע עלולות להוביל לשגיאה, ולרמז על כך שהשקע הזה צריך להיות מנותק דרך disconnect().

    לשקעי udp, הערך הזה רק מציין אם צוינה כתובת מרוחקת של ברירת מחדל לקריאה ולכתיבה של מנות.

  • localAddress

    מחרוזת אופציונלי

    אם השקע הבסיסי מקושר או מחובר, מכיל את כתובת IPv4/6 המקומית שלו.

  • localPort

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

    אם השקע הבסיסי מקושר או מחובר, מכיל את היציאה המקומית שלו.

  • peerAddress

    מחרוזת אופציונלי

    אם השקע הבסיסי מחובר, מכיל את כתובת IPv4/6 של הרשת השכנה.

  • peerPort

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

    אם השקע הבסיסי מחובר, מכיל את היציאה של הרשת השכנה.

  • socketType

    סוג השקע שהועבר. זה יהיה tcp או udp.

SocketType

טיפוסים בני מנייה (enum)

"tcp"

TLSVersionConstraints

תכונות

  • מקסימלי

    מחרוזת אופציונלי

  • דק'

    מחרוזת אופציונלי

    הגרסאות המינימליות והמקסימליות של ה-TLS (אבטחת שכבת התעבורה). הערכים הנתמכים הם tls1.2 או tls1.3.

    הערכים tls1 ו-tls1.1 לא נתמכים יותר. אם הפרמטר min מוגדר לאחד מהערכים האלה, הוא יוצמד בצורה שקטה ל-tls1.2. אם המשתנה max מוגדר לאחד מהערכים האלה או לכל ערך לא מזוהה אחר, המערכת תתעלם ממנו ללא הודעה.

WriteInfo

תכונות

  • bytesWritten

    מספר

    מספר הבייטים שנשלחו או קוד שגיאה שלילי.

שיטות

accept()

chrome.socket.accept(
  socketId: number,
  callback: function,
)

השיטה הזו רלוונטית לשקעי TCP בלבד. רישום של פונקציית קריאה חוזרת שתיקרא כשיתקבל חיבור בשקע של שרת ההאזנה. צריך להפעיל קודם את ההאזנה. אם כבר יש קריאה חוזרת (callback) פעילה, הקריאה החוזרת (callback) הזו תופעל מיד עם שגיאה ב- resultCode.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

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

    פונקציה

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

    (acceptInfo: AcceptInfo)=>void

bind()

chrome.socket.bind(
  socketId: number,
  address: string,
  port: number,
  callback: function,
)

הפונקציה מחייבת את הכתובת המקומית של socket. בשלב הזה הוא לא תומך בשקע TCP.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • כתובת

    מחרוזת

    הכתובת של המכונה המקומית.

  • יציאה

    מספר

    היציאה של המכונה המקומית.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

connect()

chrome.socket.connect(
  socketId: number,
  hostname: string,
  port: number,
  callback: function,
)

חיבור השקע למחשב המרוחק (לשקע tcp). בשקע udp, ההגדרה הזו מגדירה את כתובת ברירת המחדל שאליה המנות נשלחות וייקראו בשיחות read() ו-write().

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • hostname

    מחרוזת

    שם המארח או כתובת ה-IP של המחשב המרוחק.

  • יציאה

    מספר

    היציאה של המכונה המרוחקת.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

create()

הבטחה
chrome.socket.create(
  type: SocketType,
  options?: CreateOptions,
  callback?: function,
)

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

פרמטרים

  • סוג

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

  • אפשרויות

    CreateOptions אופציונלי

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

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

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

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

    (createInfo: CreateInfo)=>void

החזרות

  • Promise<CreateInfo>

    Chrome 121 ומעלה

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך. בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

destroy()

chrome.socket.destroy(
  socketId: number,
)

משמיד את השקע. יש להשמיד כל שקע שנוצר.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

disconnect()

chrome.socket.disconnect(
  socketId: number,
)

מנתקים את השקע. בשקעי UDP, disconnect לא נדרשת פעולה, אבל אפשר לקרוא אותו בבטחה.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

getInfo()

הבטחה
chrome.socket.getInfo(
  socketId: number,
  callback?: function,
)

אחזור המצב של השקע הנתון.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

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

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

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

    (result: SocketInfo)=>void

החזרות

  • Promise<SocketInfo>

    Chrome 121 ומעלה

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך. בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

getJoinedGroups()

chrome.socket.getJoinedGroups(
  socketId: number,
  callback: function,
)

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

פרמטרים

  • socketId

    מספר

    מזהה השקע.

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

    פונקציה

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

    (groups: string[])=>void

    • קבוצות

      מחרוזת[]

getNetworkList()

הבטחה
chrome.socket.getNetworkList(
  callback?: function,
)

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

פרמטרים

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

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

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

    (result: NetworkInterface[])=>void

החזרות

  • Promise<NetworkInterface[]>

    Chrome 121 ומעלה

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך. בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

joinGroup()

chrome.socket.joinGroup(
  socketId: number,
  address: string,
  callback: function,
)

מצטרפים לקבוצה של שידורים מרובים (multicast) ומתחילים לקבל חבילות מהקבוצה. השקע חייב להיות מסוג UDP וחייב להיות מקושר ליציאה מקומית לפני הקריאה לשיטה הזו.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • כתובת

    מחרוזת

    כתובת הקבוצה שאליה צריך להצטרף. שמות דומיינים לא נתמכים.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

leaveGroup()

chrome.socket.leaveGroup(
  socketId: number,
  address: string,
  callback: function,
)

עזיבת הקבוצה מרובת השידורים שהצטרפת אליה בעבר באמצעות joinGroup. לא צריך לעזוב את הקבוצה של שידורים מרובים לפני השמדת השקע או יציאה ממנו. מערכת ההפעלה קוראת לזה באופן אוטומטי.

עזיבת הקבוצה תמנע מהנתב לשלוח מבני נתונים של שידורים מרובים למארח המקומי, בהנחה שאף תהליך אחר במארח עדיין לא מצורף לקבוצה.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • כתובת

    מחרוזת

    כתובת הקבוצה שאליה צריך לצאת. שמות דומיינים לא נתמכים.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

listen()

chrome.socket.listen(
  socketId: number,
  address: string,
  port: number,
  backlog?: number,
  callback: function,
)

השיטה הזו רלוונטית לשקעי TCP בלבד. מאזין לחיבורים ביציאה ובכתובת שצוינו. למעשה, זהו שקע שרת, וכבר אי אפשר להשתמש בפונקציות של שקע הלקוח (התחברות, קריאה, כתיבה).

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • כתובת

    מחרוזת

    הכתובת של המכונה המקומית.

  • יציאה

    מספר

    היציאה של המכונה המקומית.

  • עיכוב

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

    משך הזמן של תור ההאזנה ב-socket.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

read()

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

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

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • bufferSize

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

    גודל מאגר הנתונים הזמני לקריאה.

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

    פונקציה

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

    (readInfo: ReadInfo)=>void

recvFrom()

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

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

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • bufferSize

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

    גודל מאגר הנתונים הזמני לקבל.

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

    פונקציה

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

    (recvFromInfo: RecvFromInfo)=>void

secure()

chrome.socket.secure(
  socketId: number,
  options?: SecureOptions,
  callback: function,
)

התחלת חיבור של לקוח TLS באמצעות שקע לקוח TCP מחובר.

פרמטרים

  • socketId

    מספר

    השקע המחובר לשימוש.

  • אפשרויות

    SecureOptions אופציונלי

    מגבלות ופרמטרים עבור חיבור TLS.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

sendTo()

chrome.socket.sendTo(
  socketId: number,
  data: ArrayBuffer,
  address: string,
  port: number,
  callback: function,
)

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

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • נתונים

    ArrayBuffer

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

  • כתובת

    מחרוזת

    הכתובת של המכונה המרוחקת.

  • יציאה

    מספר

    היציאה של המכונה המרוחקת.

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

    פונקציה

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

    (writeInfo: WriteInfo)=>void

setKeepAlive()

chrome.socket.setKeepAlive(
  socketId: number,
  enable: boolean,
  delay?: number,
  callback: function,
)

מפעילה או משביתה את הפונקציונליות של keep-alive עבור חיבור TCP.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • enable

    boolean

    אם True, מפעילים את הפונקציונליות של שמירת נתונים פעילה.

  • עיכוב

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

    הגדרת משך ההשהיה (בשניות) בין חבילת הנתונים האחרונה שהתקבלה לבין בקשת ה-Keepalive הראשונה. ברירת המחדל היא 0.

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

    פונקציה

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

    (result: boolean)=>void

    • תוצאה אחת

      boolean

setMulticastLoopbackMode()

chrome.socket.setMulticastLoopbackMode(
  socketId: number,
  enabled: boolean,
  callback: function,
)

הגדרה אם חבילות שידור לקבוצה שנשלחו מהמארח לקבוצה של השידורים מרובים, יוחזרו בלולאה ויוצגו בלולאה.

הערה: ההתנהגות של setMulticastLoopbackMode שונה מעט בין מערכות דמויות Windows ו-Unix. חוסר העקביות קורה רק כאשר יש יותר מאפליקציה אחת באותו מארח שמחוברת לאותה קבוצה של שידורים מרובים, כשיש הגדרות שונות במצב הלולאה החוזרת של שידורים מרובים. ב-Windows, אפליקציות עם לולאה חוזרת כבויות לא יקבלו את מנות הלולאה החוזרת; בעוד שבמערכות דמויי Unix, האפליקציות עם הלולאה החוזרת כבויות לא ישלחו את מנות הלולאה החוזרת לאפליקציות אחרות באותו מארח. אפשר לעיין ב-MSDN: http://goo.gl/6vqbj

כדי להפעיל את השיטה הזו, לא נדרשת הרשאות להעברת שידורים מרובים.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • פעיל

    boolean

    יש לציין אם להפעיל מצב לולאה חוזרת.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

setMulticastTimeToLive()

chrome.socket.setMulticastTimeToLive(
  socketId: number,
  ttl: number,
  callback: function,
)

הגדרת משך החיים של חבילות שידור לקבוצה שנשלחו לקבוצה של שידורים מרובים.

כדי להפעיל את השיטה הזו, לא נדרשת הרשאות להעברת שידורים מרובים.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • ttl

    מספר

    הערך של משך החיים.

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

    פונקציה

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

    (result: number)=>void

    • תוצאה אחת

      מספר

setNoDelay()

chrome.socket.setNoDelay(
  socketId: number,
  noDelay: boolean,
  callback: function,
)

מגדירה או מוחקת את TCP_NODELAY עבור חיבור TCP. האלגוריתם של Nagle יושבת לאחר הגדרת TCP_NODELAY.

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • noDelay

    boolean

    אם הערך הוא True, האלגוריתם של Nagle מושבת.

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

    פונקציה

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

    (result: boolean)=>void

    • תוצאה אחת

      boolean

write()

chrome.socket.write(
  socketId: number,
  data: ArrayBuffer,
  callback: function,
)

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

פרמטרים

  • socketId

    מספר

    מזהה השקע.

  • נתונים

    ArrayBuffer

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

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

    פונקציה

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

    (writeInfo: WriteInfo)=>void