説明
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
プロパティ
-
tlsVersion
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
-
acceptInfo
-
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()
chrome.socket.create(
type: SocketType,
options?: CreateOptions,
callback?: function,
): Promise<CreateInfo>
指定されたリモート マシンに接続する指定されたタイプのソケットを作成します。
パラメータ
-
type
作成するソケットのタイプ。
tcp
またはudp
にする必要があります。 -
オプション
CreateOptions 省略可
ソケット オプション。
-
callback
関数 省略可
callback
パラメータは次のようになります。(createInfo: CreateInfo) => void
-
createInfo
-
戻り値
-
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()
chrome.socket.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
指定されたソケットの状態を取得します。
パラメータ
-
socketId
数値
socketId。
-
callback
関数 省略可
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()
chrome.socket.getNetworkList(
callback?: function,
): Promise<NetworkInterface[]>
このシステムのローカル アダプタに関する情報を取得します。
パラメータ
-
callback
関数 省略可
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
-
readInfo
-
recvFrom()
chrome.socket.recvFrom(
socketId: number,
bufferSize?: number,
callback: function,
): void
指定された UDP ソケットからデータを受信します。
パラメータ
-
socketId
数値
socketId。
-
bufferSize
number 省略可
受信バッファサイズ。
-
callback
関数
callback
パラメータは次のようになります。(recvFromInfo: RecvFromInfo) => void
-
recvFromInfo
-
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
-
writeInfo
-
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
マルチキャスト グループに送信されるマルチキャスト パケットの存続時間(TTL)を設定します。
このメソッドの呼び出しにマルチキャスト権限は必要ありません。
パラメータ
-
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
指定された接続済みソケットにデータを書き込みます。