chrome.socket

説明

chrome.socket API を使用して、TCP 接続と UDP 接続を使用してネットワーク経由でデータを送受信します。注: Chrome 33 以降、この API は非推奨となり、sockets.udp、sockets.tcp、sockets.tcpServer API が推奨されています。

権限

socket

型

AcceptInfo

プロパティ

  • resultCode

    数値

  • socketId

    number 省略可

    受け入れられたソケットの ID。

CreateInfo

プロパティ

  • socketId

    数値

    新しく作成されたソケットの ID。

CreateOptions

NetworkInterface

プロパティ

  • 住所

    文字列

    使用可能な IPv4/6 アドレス。

  • name

    文字列

    アダプターの基盤となる名前。*nix では、通常は「eth0」、「lo」などになります。

  • prefixLength

    数値

    プレフィックス長

ReadInfo

プロパティ

  • データ

    ArrayBuffer

  • resultCode

    数値

    基盤となる read() 呼び出しから返された resultCode。

RecvFromInfo

プロパティ

  • 住所

    文字列

    リモートマシンのアドレス。

  • データ

    ArrayBuffer

  • ポート

    数値

  • resultCode

    数値

    基盤となる recvfrom() 呼び出しから返された resultCode。

SecureOptions

プロパティ

SocketInfo

プロパティ

  • 接続済み

    ブール値

    基盤となるソケットが接続されているかどうか。

    tcp ソケットの場合、リモートピアが切断されても、この状態は変わりません。ソケットの読み取りまたは書き込みでエラーが発生し、disconnect() を介してこのソケットを切断する必要があることが示される場合があります。

    udp ソケットの場合、これはパケットの読み取りと書き込みにデフォルトのリモート アドレスが指定されているかどうかを表します。

  • localAddress

    文字列 省略可

    基盤となるソケットがバインドまたは接続されている場合は、そのローカル IPv4/6 アドレスが含まれます。

  • localPort

    number 省略可

    基盤となるソケットがバインドまたは接続されている場合は、そのローカルポートが含まれます。

  • peerAddress

    文字列 省略可

    基盤となるソケットが接続されている場合、ピアの IPv4/6 アドレスが含まれます。

  • peerPort

    number 省略可

    基盤となるソケットが接続されている場合は、接続されたピアのポートが含まれます。

  • socketType

    渡されたソケットのタイプ。tcp または udp になります。

SocketType

列挙型

"tcp"

"udp"

TLSVersionConstraints

プロパティ

  • 最大

    文字列 省略可

  • 分

    文字列 省略可

    TLS の許容される最小バージョンと最大バージョン。指定できる値は tls1.2 または tls1.3 です。

    tls1 と tls1.1 の値はサポートされなくなりました。min がこれらの値のいずれかに設定されている場合、自動的に tls1.2 に固定されます。max がこれらの値のいずれか、またはその他の認識されない値に設定されている場合、その値は無視されます。

WriteInfo

プロパティ

  • bytesWritten

    数値

    送信されたバイト数、または負のエラーコード。

メソッド

accept()

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

このメソッドは TCP ソケットにのみ適用されます。このリスニング サーバー ソケットで接続が受け入れられたときに呼び出されるコールバック関数を登録します。最初に listen を呼び出す必要があります。すでにアクティブな承認コールバックがある場合、このコールバックは resultCode としてエラーを伴ってすぐに呼び出されます。

パラメータ

  • socketId

    数値

    socketId。

  • callback

    関数

    callback パラメータは次のようになります。

    (acceptInfo: AcceptInfo) => void

bind()

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

ソケットのローカルアドレスをバインドします。現在、TCP ソケットはサポートされていません。

パラメータ

  • socketId

    数値

    socketId。

  • 住所

    文字列

    ローカルマシンのアドレス。

  • ポート

    数値

    ローカルマシンのポート。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

connect()

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

ソケットをリモートマシンに接続します(tcp ソケットの場合)。udp ソケットの場合、read() 呼び出しと write() 呼び出しでパケットの送信先と読み取り元となるデフォルトのアドレスを設定します。

パラメータ

  • socketId

    数値

    socketId。

  • hostname

    文字列

    リモートマシンのホスト名または IP アドレス。

  • ポート

    数値

    リモートマシンのポート。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

create()

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

指定されたリモートマシンに接続する、指定されたタイプのソケットを作成します。

パラメータ

  • type

    作成するソケットのタイプ。tcp または udp にする必要があります。

  • オプション

    CreateOptions 省略可

    ソケット オプション。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (createInfo: CreateInfo) => void

戻り値

  • Promise<CreateInfo>

    Chrome 121 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

destroy()

chrome.socket.destroy(
  socketId: number,
)
: void

ソケットを破棄します。作成したソケットは、使用後に破棄する必要があります。

パラメータ

  • socketId

    数値

    socketId。

disconnect()

chrome.socket.disconnect(
  socketId: number,
)
: void

ソケットを切断します。UDP ソケットの場合、disconnect は非オペレーションですが、呼び出しても安全です。

パラメータ

  • socketId

    数値

    socketId。

getInfo()

Promise
chrome.socket.getInfo(
  socketId: number,
  callback?: function,
)
: Promise<SocketInfo>

指定されたソケットの状態を取得します。

パラメータ

  • socketId

    数値

    socketId。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: SocketInfo) => void

戻り値

  • Promise<SocketInfo>

    Chrome 121 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getJoinedGroups()

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

ソケットが現在参加しているマルチキャスト グループ アドレスを取得します。

パラメータ

  • socketId

    数値

    socketId。

  • callback

    関数

    callback パラメータは次のようになります。

    (groups: string[]) => void

    • グループ

      string[]

getNetworkList()

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

このシステムのローカル アダプタに関する情報を取得します。

パラメータ

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (result: NetworkInterface[]) => void

戻り値

  • Promise<NetworkInterface[]>

    Chrome 121 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

joinGroup()

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

マルチキャスト グループに参加して、そのグループからパケットの受信を開始します。このメソッドを呼び出す前に、ソケットは UDP タイプで、ローカルポートにバインドされている必要があります。

パラメータ

  • socketId

    数値

    socketId。

  • 住所

    文字列

    参加するグループのアドレス。ドメイン名はサポートされていません。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

leaveGroup()

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

joinGroup を使用して以前に参加したマルチキャスト グループから離脱します。ソケットを破棄したり終了したりする前に、マルチキャスト グループから離脱する必要はありません。これは OS によって自動的に呼び出されます。

グループから離脱すると、ルーターはマルチキャスト データグラムをローカルホストに送信しなくなります。ただし、ホスト上の他のプロセスがグループに参加していないことが前提となります。

パラメータ

  • socketId

    数値

    socketId。

  • 住所

    文字列

    退会するグループのアドレス。ドメイン名はサポートされていません。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

listen()

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

このメソッドは TCP ソケットにのみ適用されます。指定されたポートとアドレスで接続をリッスンします。これにより、このソケットは実質的にサーバー ソケットとなり、クライアント ソケット関数(connect、read、write)はこのソケットで使用できなくなります。

パラメータ

  • socketId

    数値

    socketId。

  • 住所

    文字列

    ローカルマシンのアドレス。

  • ポート

    数値

    ローカルマシンのポート。

  • バックログ

    number 省略可

    ソケットのリスンキューの長さ。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

read()

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

指定された接続済みソケットからデータを読み取ります。

パラメータ

  • socketId

    数値

    socketId。

  • bufferSize

    number 省略可

    読み取りバッファサイズ。

  • callback

    関数

    callback パラメータは次のようになります。

    (readInfo: ReadInfo) => void

recvFrom()

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

指定された UDP ソケットからデータを受信します。

パラメータ

  • socketId

    数値

    socketId。

  • bufferSize

    number 省略可

    受信バッファサイズ。

  • callback

    関数

    callback パラメータは次のようになります。

    (recvFromInfo: RecvFromInfo) => void

secure()

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

接続された TCP クライアント ソケットを介して TLS クライアント接続を開始します。

パラメータ

  • socketId

    数値

    使用する接続済みソケット。

  • オプション

    SecureOptions 省略可

    TLS 接続の制約とパラメータ。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

sendTo()

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

指定された UDP ソケットのデータを、指定されたアドレスとポートに送信します。

パラメータ

  • socketId

    数値

    socketId。

  • データ

    ArrayBuffer

    書き込むデータ。

  • 住所

    文字列

    リモートマシンのアドレス。

  • ポート

    数値

    リモートマシンのポート。

  • callback

    関数

    callback パラメータは次のようになります。

    (writeInfo: WriteInfo) => void

setKeepAlive()

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

TCP 接続のキープアライブ機能を有効または無効にします。

パラメータ

  • socketId

    数値

    socketId。

  • 有効にする

    ブール値

    true の場合、キープアライブ機能を有効にします。

  • delay

    number 省略可

    最後に受信したデータパケットと最初のキープアライブ プローブの間の遅延秒数を設定します。デフォルトは 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)をご覧ください。

このメソッドを呼び出すためにマルチキャスト権限は必要ありません。

パラメータ

  • socketId

    数値

    socketId。

  • 有効

    ブール値

    ループバック モードを有効にするかどうかを指定します。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

setMulticastTimeToLive()

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

マルチキャスト グループに送信されるマルチキャスト パケットの有効期間を設定します。

このメソッドを呼び出すためにマルチキャスト権限は必要ありません。

パラメータ

  • socketId

    数値

    socketId。

  • ttl

    数値

    有効期間の値。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: number) => void

    • 件の結果

      数値

setNoDelay()

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

TCP 接続の TCP_NODELAY を設定またはクリアします。TCP_NODELAY が設定されている場合、Nagle のアルゴリズムは無効になります。

パラメータ

  • socketId

    数値

    socketId。

  • noDelay

    ブール値

    true の場合、Nagle のアルゴリズムを無効にします。

  • callback

    関数

    callback パラメータは次のようになります。

    (result: boolean) => void

    • 件の結果

      ブール値

write()

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

指定された接続済みソケットにデータを書き込みます。

パラメータ

  • socketId

    数値

    socketId。

  • データ

    ArrayBuffer

    書き込むデータ。

  • callback

    関数

    callback パラメータは次のようになります。

    (writeInfo: WriteInfo) => void