chrome.sockets.tcpServer

描述 chrome.sockets.tcpServer API 可以创建使用 TCP 连接的服务器应用。该 API 增强了原来 chrome.socket API 中的 TCP 功能。
可用版本 从 Chrome 33 开始支持。
清单文件 "sockets": {...}

摘要

类型
SocketProperties
SocketInfo
方法
create chrome.sockets.tcpServer.create( SocketProperties properties, function callback)
update chrome.sockets.tcpServer.update(integer socketId, SocketProperties properties, function callback)
setPaused chrome.sockets.tcpServer.setPaused(integer socketId, boolean paused, function callback)
listen chrome.sockets.tcpServer.listen(integer socketId, string address, integer port, integer backlog, function callback)
disconnect chrome.sockets.tcpServer.disconnect(integer socketId, function callback)
close chrome.sockets.tcpServer.close(integer socketId, function callback)
getInfo chrome.sockets.tcpServer.getInfo(integer socketId, function callback)
getSockets chrome.sockets.tcpServer.getSockets(function callback)
事件
onAccept
onAcceptError

类型

SocketProperties

属性
boolean (可选)
persistent

应用的事件页面卸载(参见管理应用的生命周期)时是否使套接字保持打开状态,默认值为 false。应用加载时,之前使用 persistent: true 打开的套接字可以通过 getSockets 获取。

string (可选)
name

与套接字相关联的字符串,由应用定义。

SocketInfo

属性
integer socketId

套接字标识符。

boolean persistent

应用关闭时(参见 SocketProperties.persistent)套接字是否保持打开状态。默认值为 false

string (可选)
name

与套接字相关联的字符串,由应用定义。

boolean paused

表示正在监听的套接字上的连接请求是通过 onAccept 事件分发还是放入监听队列中的标志。请参见 setPaused。默认值为 false

string (可选)
localAddress

如果套接字处于监听状态,包含它的本机 IPv4/6 地址。

integer (可选)
localPort

如果套接字处于监听状态,包含它的本机端口。

方法

create

chrome.sockets.tcpServer.create( SocketProperties properties, function callback)

创建 TCP 服务器套接字。

参数
SocketProperties (可选)
properties

套接字属性(可选)。

function callback

套接字创建后调用。

callback 参数应该是一个如下形式的函数:

function(object createInfo) {...};
object createInfo

套接字创建的结果。

integer socketId

新创建的服务器套接字的标识符。注意,该 API 中创建的套接字标识符和其他 API 中创建的套接字标识符不兼容,例如弃用的 socket API。

update

chrome.sockets.tcpServer.update(integer socketId, SocketProperties properties, function callback)

更新套接字属性。

参数
integer socketId

套接字标识符。

SocketProperties properties

要更新的属性。

function (可选)
callback

属性更新后调用。

如果您指定了 callback 参数,它应该是一个如下形式的函数:

function() {...};

setPaused

chrome.sockets.tcpServer.setPaused(integer socketId, boolean paused, function callback)

允许或阻止正在监听的套接字接受新的连接。处于暂停状态时,正在监听的套接字仍然会接受新的连接,直到挂起连接队列已满(参见 listen 函数),接下来拒绝其他连接请求。只有套接字未暂停时才会产生 onAccept 事件。

参数
integer socketId
boolean paused
function (可选)
callback

setPaused 方法的回调函数。

如果您指定了 callback 参数,它应该是一个如下形式的函数:

function() {...};

listen

chrome.sockets.tcpServer.listen(integer socketId, string address, integer port, integer backlog, function callback)

监听指定端口与地址上的连接。如果端口/地址已经在使用,回调函数会指示失败。

参数
integer socketId

套接字标识符。

string address

本地计算机的地址。

integer port

本地计算机的端口。

integer (可选)
backlog

套接字监听队列的长度,默认值取决于操作系统(SOMAXCONN),确保对大部分应用程序来说都有合适的队列长度。

function callback

监听操作完成时调用。

callback 参数应该是一个如下形式的函数:

function(integer result) {...};
integer result

底层网络调用返回的结果代码,负值表示错误。

disconnect

chrome.sockets.tcpServer.disconnect(integer socketId, function callback)

断开正在监听的套接字,即不再接受新的连接,并释放绑定至套接字的地址/端口。套接字标识符仍然有效,例如您可以继续使用 listen 在新的端口和地址上接受连接。

参数
integer socketId

套接字标识符。

function (可选)
callback

断开连接的尝试完成后调用。

如果您指定了 callback 参数,它应该是一个如下形式的函数:

function() {...};

close

chrome.sockets.tcpServer.close(integer socketId, function callback)

断开连接并释放套接字。每一个创建的套接字在使用完成后都应该关闭。该函数调用后套接字标识符就失效,但是调用回调函数时才能保证套接字已经关闭。

参数
integer socketId

套接字标识符。

function (可选)
callback

close 操作完成后调用。

如果您指定了 callback 参数,它应该是一个如下形式的函数:

function() {...};

getInfo

chrome.sockets.tcpServer.getInfo(integer socketId, function callback)

获取指定套接字的状态。

参数
integer socketId

套接字标识符。

function callback

套接字状态可用时调用。

callback 参数应该是一个如下形式的函数:

function( SocketInfo socketInfo) {...};
SocketInfo socketInfo

包含套接字信息的对象。

getSockets

chrome.sockets.tcpServer.getSockets(function callback)

获取应用拥有的当前打开的套接字列表。

参数
function callback

套接字列表可用时调用。

callback 参数应该是一个如下形式的函数:

function(array of SocketInfo socketInfos) {...};
array of SocketInfo socketInfos

包含套接字信息的对象数组。

事件

onAccept

连接到服务器套接字时产生。

addListener

chrome.sockets.tcpServer.onAccept.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(object info) {...};
object info

事件数据。

integer socketId

服务器的套接字标识符。

integer clientSocketId

客户端的套接字标识符,即新建立的连接对应的套接字标识符,该套接字标识符只能在 chrome.sockets.tcp 命名空间的函数中使用。注意,客户端套接字一开始处于暂停状态,应用必须显式取消暂停才能开始接收数据。

onAcceptError

运行时在套接字地址和端口上等待新连接时如果发生网络错误则产生该事件。一旦产生了该事件,套接字将设置为暂停状态(paused),而且不会再产生 onAccept 事件,直到套接字恢复。

addListener

chrome.sockets.tcpServer.onAcceptError.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(object info) {...};
object info

事件数据。

integer socketId

服务器的套接字标识符。

integer resultCode

底层网络调用返回的结果代码。