chrome.sockets.udp
描述: |
使用 chrome.sockets.udp API 通过 UDP
连接在网络中发送和接收数据。该 API 增强了原来套接字 API 中的 UDP
功能。
|
可用版本: |
从 Chrome 33 开始支持。
|
清单文件: |
"sockets": {...}
|
摘要
类型 | |
---|---|
SocketProperties | |
SocketInfo | |
方法 | |
create −
chrome.sockets.udp.create( SocketProperties properties, function callback)
| |
update −
chrome.sockets.udp.update(integer socketId, SocketProperties properties, function callback)
| |
setPaused −
chrome.sockets.udp.setPaused(integer socketId, boolean paused, function callback)
| |
bind −
chrome.sockets.udp.bind(integer socketId, string address, integer port, function callback)
| |
send −
chrome.sockets.udp.send(integer socketId, ArrayBuffer data, string address, integer port, function callback)
| |
close −
chrome.sockets.udp.close(integer socketId, function callback)
| |
getInfo −
chrome.sockets.udp.getInfo(integer socketId, function callback)
| |
getSockets −
chrome.sockets.udp.getSockets(function callback)
| |
joinGroup −
chrome.sockets.udp.joinGroup(integer socketId, string address, function callback)
| |
leaveGroup −
chrome.sockets.udp.leaveGroup(integer socketId, string address, function callback)
| |
setMulticastTimeToLive −
chrome.sockets.udp.setMulticastTimeToLive(integer socketId, integer ttl, function callback)
| |
setMulticastLoopbackMode −
chrome.sockets.udp.setMulticastLoopbackMode(integer socketId, boolean enabled, function callback)
| |
getJoinedGroups −
chrome.sockets.udp.getJoinedGroups(integer socketId, function callback)
| |
事件 | |
onReceive | |
onReceiveError |
类型
SocketProperties
属性 | ||
---|---|---|
boolean | (可选) persistent |
事件页面或应用程序关闭(参见管理应用的生命周期)时套接字是否保持打开,默认值为 false。应用程序加载时,之前以 persistent: true 打开的套接字可以通过 |
string | (可选) name |
与该套接字相关联的字符串,由应用定义。 |
integer | (可选) bufferSize |
用于接收数据的缓冲区大小。如果缓冲区太小而无法接收某个 UDP 包,则会丢失数据。默认值为 4096。 |
SocketInfo
属性 | ||
---|---|---|
integer | socketId |
应用关闭时(参见 |
string | (可选) name |
与套接字相关联的字符串,由应用定义。 |
integer | (可选) bufferSize |
用于接收数据的缓冲区大小。如果没有明确指定缓冲区大小,则不提供该属性的值。 |
boolean | paused |
表示是否阻止套接字产生 onReceive 事件。 |
string | (可选) localAddress |
如果套接字已绑定,则包含它的本地 IPv4/6 地址。 |
integer | (可选) localPort |
如果套接字已绑定,则包含它的本地端口。 |
方法
create
chrome.sockets.udp.create( SocketProperties properties, function callback)
创建具有指定属性的 UDP 套接字。
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
SocketProperties | (可选) properties |
套接字属性(可选)。 |
||||||
function | callback |
套接字创建后调用。 callback 参数应该是一个如下形式的函数: function(object createInfo) {...};
|
update
chrome.sockets.udp.update(integer socketId, SocketProperties properties, function callback)
更新套接字属性。
参数 | ||
---|---|---|
integer | socketId |
套接字标识符。 |
SocketProperties | properties |
要更新的属性。 |
function | (可选) callback |
属性更新后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
setPaused
chrome.sockets.udp.setPaused(integer socketId, boolean paused, function callback)
暂停或取消暂停套接字。暂停的套接字不会收到 onReceive
事件。
参数 | ||
---|---|---|
integer | socketId | |
boolean | paused |
表示是暂停还是取消暂停的标志。 |
function | (可选) callback |
套接字暂停或取消暂停成功时调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
bind
chrome.sockets.udp.bind(integer socketId, string address, integer port, function callback)
为套接字绑定本机地址和端口。对于客户端套接字来说,建议使用端口 0 以便让平台选择一个空闲的端口。一旦 bind
操作成功完成,只要指定地址/端口上收到 UDP 数据包就会产生 onReceive
事件,除非套接字已暂停。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
string | address |
本地计算机的地址,支持 DNS 名称、IPv4 和 IPv6 地址。使用 "0.0.0.0" 可以从所有本地可用的网络接口接收数据包。 |
|||
integer | port |
本地计算机的端口,使用 0 可以绑定至某个空闲端口。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(integer result) {...};
|
send
chrome.sockets.udp.send(integer socketId, ArrayBuffer data, string address, integer port, function callback)
在指定套接字上向指定的地址和端口发送数据。调用该方法前,套接字必须绑定至某个本机端口。
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||||||||
ArrayBuffer | data |
要发送的数据。 |
|||||||||
string | address |
远程计算机的地址。 |
|||||||||
integer | port |
远程计算机的端口。 |
|||||||||
function | callback |
callback 参数应该是一个如下形式的函数: function(object sendInfo) {...};
|
close
chrome.sockets.udp.close(integer socketId, function callback)
关闭套接字,并释放套接字绑定的地址/端口。每一个创建的套接字在使用完成后都必须关闭。该函数调用后套接字标识符就失效,但是调用回调函数时才能保证套接字已经关闭。
参数 | ||
---|---|---|
integer | socketId |
套接字标识符。 |
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
getInfo
chrome.sockets.udp.getInfo(integer socketId, function callback)
获取指定套接字的状态。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
function | callback |
套接字状态可用时调用。 callback 参数应该是一个如下形式的函数: function( SocketInfo socketInfo) {...};
|
getSockets
chrome.sockets.udp.getSockets(function callback)
获取应用拥有的当前打开的套接字列表。
参数 | |||||
---|---|---|---|---|---|
function | callback |
套接字列表可用时调用。 callback 参数应该是一个如下形式的函数: function(array of SocketInfo socketInfos) {...};
|
joinGroup
chrome.sockets.udp.joinGroup(integer socketId, string address, function callback)
加入多播分组,开始接收来自指定分组的数据包。调用该方法前套接字必须绑定至某个本机端口。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
string | address |
要加入的分组地址,不支持域名。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(integer result) {...};
|
leaveGroup
chrome.sockets.udp.leaveGroup(integer socketId, string address, function callback)
离开之前通过 joinGroup
加入的多播分组。只有您还需要继续使用该套接字时才需要调用,套接字关闭时操作系统会自动进行该操作。
离开分组后,如果主机上没有其他进程仍然加入该分组,路由器就不会将多播数据包发送至本地主机。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
string | address |
要离开的分组地址,不支持域名。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(integer result) {...};
|
setMulticastTimeToLive
chrome.sockets.udp.setMulticastTimeToLive(integer socketId, integer ttl, function callback)
设置发送至多播分组的多播数据包 TTL。
调用该方法不需要多播权限。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
integer | ttl |
TTL 值。 |
|||
function | callback |
配置操作完成时调用。 callback 参数应该是一个如下形式的函数: function(integer result) {...};
|
setMulticastLoopbackMode
chrome.sockets.udp.setMulticastLoopbackMode(integer socketId, boolean enabled, function callback)
设置从主机到多播组的数据包是否要回环至主机。
注意:setMulticastLookbackMode
在 Windows 与类 Unix 系统上的行为不同。只有当同一主机上不止一个应用程序加入了同一个多播组,并且多播回环模式的设置不同时才会出现这一不一致性。在 Windows 中,关闭回环的应用程序不会接受到回环包;而在类 Unix 系统中,关闭回环的应用程序不会向同一主机上的其他应用程序发送回环包。请参见 MSDN:http://goo.gl/6vqbj。
调用该方法不需要多播权限。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
boolean | enabled |
表示是否启用回环模式。 |
|||
function | callback |
配置操作完成后调用。 callback 参数应该是一个如下形式的函数: function(integer result) {...};
|
getJoinedGroups
chrome.sockets.udp.getJoinedGroups(integer socketId, function callback)
获取套接字当前加入的多播分组地址。
参数 | |||||
---|---|---|---|---|---|
integer | socketId |
套接字标识符。 |
|||
function | callback |
调用时传递字符串数据,表示结果。 callback 参数应该是一个如下形式的函数: function(array of string groups) {...};
|
事件
onReceive
指定套接字接收到 UDP 数据包时产生该事件。
addListener
chrome.sockets.udp.onReceive.addListener(function callback)
参数 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object info) {...};
|
onReceiveError
运行时在套接字地址和端口上等待数据时如果发生网络错误,就会产生该事件。一旦产生该事件后,套接字会暂停,该套接字不再产生 onReceive
事件,直到套接字恢复。
addListener
chrome.sockets.udp.onReceiveError.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object info) {...};
|