Description
Use the chrome.sockets.tcp API to send and receive data over the network using TCP connections. This API supersedes the TCP functionality previously found in the chrome.socket API.
Manifest
Types
CreateInfo
Properties
- 
    socketIdnumber The ID of the newly created socket. Note that socket IDs created from this API are not compatible with socket IDs created from other APIs, such as the deprecated [socket](../socket/)API.
DnsQueryType
DNS resolution preferences. The default is any and uses the current OS config which may return IPv4 or IPv6. ipv4 forces IPv4, and ipv6 forces IPv6.
Enum
"any"  "ipv4"  "ipv6" 
 
 
 
ReceiveErrorInfo
Properties
- 
    resultCodenumber The result code returned from the underlying network call. 
- 
    socketIdnumber The socket identifier. 
ReceiveInfo
Properties
- 
    dataArrayBuffer The data received, with a maxium size of bufferSize.
- 
    socketIdnumber The socket identifier. 
SecureOptions
Properties
- 
    tlsVersionTLSVersionConstraints optional 
SendInfo
Properties
- 
    bytesSentnumber optional The number of bytes sent (if result == 0) 
- 
    resultCodenumber The result code returned from the underlying network call. A negative value indicates an error. 
SocketInfo
Properties
- 
    bufferSizenumber optional The size of the buffer used to receive data. If no buffer size has been specified explictly, the value is not provided. 
- 
    connectedboolean Flag indicating whether the socket is connected to a remote peer. 
- 
    localAddressstring optional If the underlying socket is connected, contains its local IPv4/6 address. 
- 
    localPortnumber optional If the underlying socket is connected, contains its local port. 
- 
    namestring optional Application-defined string associated with the socket. 
- 
    pausedboolean Flag indicating whether a connected socket blocks its peer from sending more data (see setPaused).
- 
    peerAddressstring optional If the underlying socket is connected, contains the peer/ IPv4/6 address. 
- 
    peerPortnumber optional If the underlying socket is connected, contains the peer port. 
- 
    persistentboolean Flag indicating whether the socket is left open when the application is suspended (see SocketProperties.persistent).
- 
    socketIdnumber The socket identifier. 
SocketProperties
Properties
- 
    bufferSizenumber optional The size of the buffer used to receive data. The default value is 4096. 
- 
    namestring optional An application-defined string associated with the socket. 
- 
    persistentboolean optional Flag indicating if the socket is left open when the event page of the application is unloaded (see Manage App Lifecycle). The default value is "false." When the application is loaded, any sockets previously opened with persistent=true can be fetched with getSockets.
TLSVersionConstraints
Properties
- 
    maxstring optional 
- 
    minstring optional The minimum and maximum acceptable versions of TLS. Supported values are tls1.2ortls1.3.The values tls1andtls1.1are no longer supported. Ifminis set to one of these values, it will be silently clamped totls1.2. Ifmaxis set to one of those values, or any other unrecognized value, it will be silently ignored.
Methods
close()
chrome.sockets.tcp.close(
socketId: number,
callback?: function,
): Promise<void>
Closes the socket and releases the address/port the socket is bound to. Each socket created should be closed after use. The socket id is no no longer valid as soon at the function is called. However, the socket is guaranteed to be closed only when the callback is invoked.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
connect()
chrome.sockets.tcp.connect(
socketId: number,
peerAddress: string,
peerPort: number,
dnsQueryType?: DnsQueryType,
callback: function,
): void
Connects the socket to a remote machine. When the connect operation completes successfully, onReceive events are raised when data is received from the peer. If a network error occurs while the runtime is receiving packets, a onReceiveError event is raised, at which point no more onReceive event will be raised for this socket until the resume method is called.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    peerAddressstring The address of the remote machine. DNS name, IPv4 and IPv6 formats are supported. 
- 
    peerPortnumber The port of the remote machine. 
- 
    dnsQueryTypeDnsQueryType optional Chrome 103+The address resolution preference. 
- 
    callbackfunction The callbackparameter looks like:(result: number) => void - 
    resultnumber The result code returned from the underlying network call. A negative value indicates an error. 
 
- 
    
create()
chrome.sockets.tcp.create(
properties?: SocketProperties,
callback?: function,
): Promise<CreateInfo>
Creates a TCP socket.
Parameters
- 
    propertiesSocketProperties optional The socket properties (optional). 
- 
    callbackfunction optional The callbackparameter looks like:(createInfo: CreateInfo) => void - 
    createInfoThe result of the socket creation. 
 
- 
    
Returns
- 
            Promise<CreateInfo> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
disconnect()
chrome.sockets.tcp.disconnect(
socketId: number,
callback?: function,
): Promise<void>
Disconnects the socket.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getInfo()
chrome.sockets.tcp.getInfo(
socketId: number,
callback?: function,
): Promise<SocketInfo>
Retrieves the state of the given socket.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    callbackfunction optional The callbackparameter looks like:(socketInfo: SocketInfo) => void - 
    socketInfoObject containing the socket information. 
 
- 
    
Returns
- 
            Promise<SocketInfo> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getSockets()
chrome.sockets.tcp.getSockets(
callback?: function,
): Promise<SocketInfo[]>
Retrieves the list of currently opened sockets owned by the application.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:(socketInfos: SocketInfo[]) => void - 
    socketInfosArray of object containing socket information. 
 
- 
    
Returns
- 
            Promise<SocketInfo[]> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
secure()
chrome.sockets.tcp.secure(
socketId: number,
options?: SecureOptions,
callback: function,
): void
Start a TLS client connection over the connected TCP client socket.
Parameters
- 
    socketIdnumber The existing, connected socket to use. 
- 
    optionsSecureOptions optional Constraints and parameters for the TLS connection. 
- 
    callbackfunction The callbackparameter looks like:(result: number) => void - 
    resultnumber 
 
- 
    
send()
chrome.sockets.tcp.send(
socketId: number,
data: ArrayBuffer,
callback: function,
): void
Sends data on the given TCP socket.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    dataArrayBuffer The data to send. 
- 
    callbackfunction The callbackparameter looks like:(sendInfo: SendInfo) => void - 
    sendInfoResult of the sendmethod.
 
- 
    
setKeepAlive()
chrome.sockets.tcp.setKeepAlive(
socketId: number,
enable: boolean,
delay?: number,
callback: function,
): void
Enables or disables the keep-alive functionality for a TCP connection.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    enableboolean If true, enable keep-alive functionality. 
- 
    delaynumber optional Set the delay seconds between the last data packet received and the first keepalive probe. Default is 0. 
- 
    callbackfunction The callbackparameter looks like:(result: number) => void - 
    resultnumber The result code returned from the underlying network call. A negative value indicates an error. 
 
- 
    
setNoDelay()
chrome.sockets.tcp.setNoDelay(
socketId: number,
noDelay: boolean,
callback: function,
): void
Sets or clears TCP_NODELAY for a TCP connection. Nagle's algorithm will be disabled when TCP_NODELAY is set.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    noDelayboolean If true, disables Nagle's algorithm. 
- 
    callbackfunction The callbackparameter looks like:(result: number) => void - 
    resultnumber The result code returned from the underlying network call. A negative value indicates an error. 
 
- 
    
setPaused()
chrome.sockets.tcp.setPaused(
socketId: number,
paused: boolean,
callback?: function,
): Promise<void>
Enables or disables the application from receiving messages from its peer. The default value is "false". Pausing a socket is typically used by an application to throttle data sent by its peer. When a socket is paused, no onReceive event is raised. When a socket is connected and un-paused, onReceive events are raised again when messages are received.
Parameters
- 
    socketIdnumber 
- 
    pausedboolean 
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
update()
chrome.sockets.tcp.update(
socketId: number,
properties: SocketProperties,
callback?: function,
): Promise<void>
Updates the socket properties.
Parameters
- 
    socketIdnumber The socket identifier. 
- 
    propertiesThe properties to update. 
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 121+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
Events
onReceive
chrome.sockets.tcp.onReceive.addListener(
callback: function,
)
Event raised when data has been received for a given socket.
Parameters
- 
    callbackfunction The callbackparameter looks like:(info: ReceiveInfo) => void - 
    info
 
- 
    
onReceiveError
chrome.sockets.tcp.onReceiveError.addListener(
callback: function,
)
Event raised when a network error occured while the runtime was waiting for data on the socket address and port. Once this event is raised, the socket is set to paused and no more onReceive events are raised for this socket.
Parameters
- 
    callbackfunction The callbackparameter looks like:(info: ReceiveErrorInfo) => void - 
    info
 
-