chrome.vpnProvider
Description
使用 chrome.vpnProvider
API 实现 VPN 客户端。
Permissions
vpnProvider
Availability
Chrome 43+
# Usage
vpnProvider 的典型用法如下:
- 使用
createConfig
方法创建 VPN 配置。 VPN 配置是在原生 Chrome 操作系统 UI 中向用户显示的持久条目。用户可以从列表中选择 VPN 配置并连接到它或断开连接。 - 向
onPlatformMessage
、onPacketReceived
和onConfigRemoved
事件添加侦听器。 - 当用户连接到 VPN 配置时,将收到带有“已连接
connected
”消息的onPlatformMessage
。我们将消息“连接connected
”和“断开连接disconnected
”之间的时间段称为 VPN 会话。在此时间段内,接收消息的分机被称为拥有 VPN 会话。 - 启动与 VPN 服务器的连接并启动 VPN 客户端。
- 使用
setParameters
设置连接的参数。 - 使用通知连接状态为“已连接
connected
”notifyConnectionStateChanged
. - 当上述步骤无误地完成后,就会创建一个到 Chrome OS 网络堆栈的虚拟隧道。可以使用
sendPacket
通过隧道发送 IP 数据包,并且将使用onPacketReceived
事件接收源自 Chrome OS 设备的任何数据包。 - 当用户从 VPN 配置断开连接时,
onPlatformMessage
将被触发并显示“断开连接disconnected
”消息。 - 如果不再需要 VPN 配置,可以使用
destroyConfig
销毁它。
Summary
Types
Methods
Events
Types
Parameters
PROPERTIES
address
string
采用 CIDR 表示法的 VPN 接口的 IP 地址。 IPv4 是目前唯一支持的模式。
broadcastAddress
string optional
VPN 接口的广播地址。 (默认:从 IP 地址和掩码推导出来)
dnsServers
string[]
DNS 服务器的 IP 列表。
domainSearch
string[] optional
搜索域列表。 (默认:无搜索域)
exclusionList
string[]
从隧道中将网络流量排除在 CIDR 表示法的 IP 块列表中。这可用于绕过进出 VPN 服务器的流量。当多个规则匹配一个目的地时,具有最长匹配前缀的规则获胜。对应于相同 CIDR 块的条目被视为重复项。整理的 (exclusionList + containsList) 列表中的此类重复项将被消除,并且将被消除的确切重复条目未定义。
inclusionList
string[]
将网络流量包含到隧道的 CIDR 表示法中的 IP 块列表中。该参数可用于建立拆分隧道。默认情况下,没有流量被定向到隧道。将条目“0.0.0.0/0”添加到此列表后,所有用户流量都会重定向到隧道。当多个规则匹配一个目的地时,具有最长匹配前缀的规则获胜。对应于相同 CIDR 块的条目被视为重复项。整理的 (exclusionList + containsList) 列表中的此类重复项将被消除,并且将被消除的确切重复条目未定义。
mtu
string optional
VPN 接口的 MTU 设置。 (默认值:1500 字节)
reconnect
string optional
Chrome 51+
VPN 扩展是否实现自动重连。
如果为
true
,则linkDown
、linkUp
、linkChanged
、suspend
和resume
平台消息将用于通知相应的事件。如果为false,如果网络拓扑发生变化,系统将强制断开VPN,用户需要手动重新连接。 (默认值:false)此属性是 Chrome 51 中的新属性;它会在早期版本中产生异常。 try/catch 可用于根据浏览器支持有条件地启用该功能。
PlatformMessage
平台使用枚举来通知客户端 VPN 会话状态。
TYPE
"connected", "disconnected", "error", "linkDown", "linkUp", "linkChanged", "suspend", or "resume"
UIEvent
平台使用枚举来指示触发 onUIEvent
的事件。
TYPE
"showAddDialog", or "showConfigureDialog"
VpnConnectionState
VPN 客户端使用枚举来通知平台其当前状态。这有助于向用户提供有意义的消息。
TYPE
"connected", or "failure"
Methods
createConfig
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
Promise
创建一个新的 VPN 配置,该配置在用户的多个登录会话中持续存在。
PARAMETERS
name
string
VPN 配置的名称。
callback
function optional
The
callback
parameter looks like:(id: string) => void
id
string
创建的配置的唯一 ID,或在失败时未定义
undefined
。
RETURNS
Promise<string>
Pending
这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。
destroyConfig
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
Promise
销毁由扩展创建的 VPN 配置。
PARAMETERS
id
string
要销毁的 VPN 配置的 ID。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。
notifyConnectionStateChanged
chrome.vpnProvider.notifyConnectionStateChanged( state: VpnConnectionState, callback?: function, )
Promise
将 VPN 会话状态通知给平台。只有当 VPN 会话归扩展程序所有时,这才会成功。
PARAMETERS
state
VPN 客户端的 VPN 会话状态。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。
sendPacket
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
Promise
通过为 VPN 会话创建的隧道发送 IP 数据包。只有当 VPN 会话归扩展程序所有时,这才会成功。
PARAMETERS
data
ArrayBuffer
要发送到平台的 IP 数据包。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。
setParameters
chrome.vpnProvider.setParameters( parameters: Parameters, callback?: function, )
Promise
设置 VPN 会话的参数。这应该在从平台收到“连接connected
”后立即调用。只有当 VPN 会话归扩展程序所有时,这才会成功。
PARAMETERS
parameters
VPN 会话的参数。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。
Events
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
当平台为扩展创建配置时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, name: string, data: object) => void
id
string
name
string
data
object
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
当平台删除扩展程序创建的配置时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string) => void
id
string
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
当通过分机拥有的 VPN 会话的隧道接收到 IP 数据包时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(data: ArrayBuffer) => void
data
ArrayBuffer
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
当从平台接收到扩展所拥有的 VPN 配置的消息时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, message: PlatformMessage, error: string) => void
id
string
message
error
string
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
当扩展有 UI 事件时触发。 UI 事件是来自平台的信号,向应用程序指示需要向用户显示 UI 对话框。
PARAMETERS
callback
function
The
callback
parameter looks like:(event: UIEvent, id?: string) => void
event
id
string optional
By.一粒技术服务.