chrome.socket
https://chajian.baidu.com/developer/apps/socket.html#method-create
描述: | 使用 chrome.socket API 通過 TCP 和 UDP 連接在網絡中發送和接收數據。注意:從 Chrome 33 開始該 API 棄用,您應該改用 sockets.udp、sockets.tcp 和 sockets.tcpServer API。 |
可用版本: | 從 Chrome 24 開始支持。 |
權限: | {"socket": ["rule1", "rule2"]} 例如: {"socket": ["tcp-connect:*:*"]} 表示可以連接任意主機的任意端口。有關規則的語法請參見網絡通信。 |
了解更多: | 網絡通信 用 Sencha ExtJS 建立應用 百度瀏覽器應用辦公時間:網絡通信 API 百度瀏覽器應用辦公時間:控制 AR ParrotDrone |
摘要
類型 | |
---|---|
SocketType | |
WriteInfo | |
方法 | |
create − chrome.socket.create( SocketType type, object options, function callback) |
|
destroy − chrome.socket.destroy(integer socketId) |
|
connect − chrome.socket.connect(integer socketId, string hostname, integer port, function callback) |
|
bind − chrome.socket.bind(integer socketId, string address, integer port, function callback) |
|
disconnect − chrome.socket.disconnect(integer socketId) |
|
read − chrome.socket.read(integer socketId, integer bufferSize, function callback) |
|
write − chrome.socket.write(integer socketId, ArrayBuffer data, function callback) |
|
recvFrom − chrome.socket.recvFrom(integer socketId, integer bufferSize, function callback) |
|
sendTo − chrome.socket.sendTo(integer socketId, ArrayBuffer data, string address, integer port, function callback) |
|
listen − chrome.socket.listen(integer socketId, string address, integer port, integer backlog, function callback) |
|
accept − chrome.socket.accept(integer socketId, function callback) |
|
setKeepAlive − chrome.socket.setKeepAlive(integer socketId, boolean enable, integer delay, function callback) |
|
setNoDelay − chrome.socket.setNoDelay(integer socketId, boolean noDelay, function callback) |
|
getInfo − chrome.socket.getInfo(integer socketId, function callback) |
|
getNetworkList − chrome.socket.getNetworkList(function callback) |
|
joinGroup − chrome.socket.joinGroup(integer socketId, string address, function callback) |
|
leaveGroup − chrome.socket.leaveGroup(integer socketId, string address, function callback) |
|
setMulticastTimeToLive − chrome.socket.setMulticastTimeToLive(integer socketId, integer ttl, function callback) |
|
setMulticastLoopbackMode − chrome.socket.setMulticastLoopbackMode(integer socketId, boolean enabled, function callback) |
|
getJoinedGroups − chrome.socket.getJoinedGroups(integer socketId, function callback) |
|
secure − chrome.socket.secure(integer socketId, object options, function callback) |
類型
SocketType
枚舉 |
---|
"tcp" , or "udp" |
WriteInfo
屬性 | ||
---|---|---|
integer | bytesWritten | 發送的字節數,或者為負數,表示錯誤代碼。 |
方法
create
chrome.socket.create( SocketType type, object options, function callback)
創建指定類型的套接字,以便用來連接到遠程計算機。
參數 | ||||||||
---|---|---|---|---|---|---|---|---|
SocketType | type | 要創建的套接字類型,必須為 |
||||||
object | (可選) options |
套接字選項。 |
||||||
function | callback | 套接字創建后調用。 callback 參數應該是一個如下形式的函數: function(object createInfo) {...};
|
destroy
chrome.socket.destroy(integer socketId)
釋放套接字,創建的套接字使用完后應該釋放。
參數 | ||
---|---|---|
integer | socketId | 套接字標識符。 |
connect
chrome.socket.connect(integer socketId, string hostname, integer port, function callback)
將套接字連接至遠程計算機(用於 tcp
套接字)。對於 udp
套接字,該函數設置 read()
與 write()
調用時數據包發送至的默認地址。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
string | hostname | 遠程計算機的主機名或 IP 地址。 |
|||
integer | port | 遠程計算機的端口。 |
|||
function | callback | 連接嘗試完成后調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
bind
chrome.socket.bind(integer socketId, string address, integer port, function callback)
為套接字綁定本機地址。當前還不支持 TCP 套接字。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
string | address | 本機地址。 |
|||
integer | port | 本機端口 |
|||
function | callback | 綁定嘗試完成后調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
disconnect
chrome.socket.disconnect(integer socketId)
斷開套接字的連接。對於 UDP 套接字來說,斷開連接並不會執行任何操作,但是可以安全地調用。
參數 | ||
---|---|---|
integer | socketId | 套接字標識符。 |
read
chrome.socket.read(integer socketId, integer bufferSize, function callback)
從指定的已連接套接字讀取數據。
參數 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||||||||
integer | (可選) bufferSize |
讀取緩沖區大小。 |
|||||||||
function | callback | 以非阻塞的方式傳遞可以讀取的數據 callback 參數應該是一個如下形式的函數: function(object readInfo) {...};
|
write
chrome.socket.write(integer socketId, ArrayBuffer data, function callback)
recvFrom
chrome.socket.recvFrom(integer socketId, integer bufferSize, function callback)
從指定 UDP 套接字接收數據。
參數 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||||||||||||||
integer | (可選) bufferSize |
接收緩沖區大小。 |
|||||||||||||||
function | callback | 返回接收操作的結果。 callback 參數應該是一個如下形式的函數: function(object recvFromInfo) {...};
|
sendTo
chrome.socket.sendTo(integer socketId, ArrayBuffer data, string address, integer port, function callback)
listen
chrome.socket.listen(integer socketId, string address, integer port, integer backlog, function callback)
該方法僅適用於 TCP 套接字,監聽指定端口與地址上的連接,這樣的結果是使該套接字成為服務器套接字,客戶端套接字函數(connect、read、write)就不能再在該套接字上使用。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
string | address | 本地計算機的地址。 |
|||
integer | port | 本地計算機的端口。 |
|||
integer | (可選) backlog |
套接字監聽隊列的長度。 |
|||
function | callback | 監聽操作完成時調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
accept
chrome.socket.accept(integer socketId, function callback)
該方法僅適用於 TCP 套接字,注冊一個回調函數,當正在監聽的服務器套接字接受連接時調用。必須首先調用 listen。如果已經有活動的接受回調函數,該回調函數將立即執行,resultCode 包含錯誤。
參數 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||||||||
function | callback | 新的套接字接受時調用該回調函數。 callback 參數應該是一個如下形式的函數: function(object acceptInfo) {...};
|
setKeepAlive
chrome.socket.setKeepAlive(integer socketId, boolean enable, integer delay, function callback)
啟用或禁用 TCP 連接保持活動狀態的功能。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
boolean | enable | 如果為 true 的話,啟用保持活動狀態的功能。 |
|||
integer | (可選) delay |
設置最后一次數據包接收與第一次活動狀態檢測之間的時間延遲,默認為 0。 |
|||
function | callback | 操作完成后調用。 callback 參數應該是一個如下形式的函數: function(boolean result) {...};
|
setNoDelay
chrome.socket.setNoDelay(integer socketId, boolean noDelay, function callback)
設置或清除 TCP 連接的 TCP_NODELAY
標志,當設置 TCP_NODELAY
標志時將禁用納格算法。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
boolean | noDelay | 如果為 true 的話,禁用納格算法。 |
|||
function | callback | 操作完成后調用。 callback 參數應該是一個如下形式的函數: function(boolean result) {...};
|
getInfo
chrome.socket.getInfo(integer socketId, function callback)
獲取指定套接字的狀態。
參數 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||||||||||||||||||||
function | callback | 狀態可用時調用。 callback 參數應該是一個如下形式的函數: function(object result) {...};
|
getNetworkList
chrome.socket.getNetworkList(function callback)
獲取當前系統中本地適配器的有關信息。
參數 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback | 本地適配器信息可用時調用。 callback 參數應該是一個如下形式的函數: function(array of object result) {...};
|
joinGroup
chrome.socket.joinGroup(integer socketId, string address, function callback)
從 Chrome 28 開始支持。
加入多播組,並開始接收數據包。調用該方法之前,套接字的類型必須是 UDP,並且已經綁定至本機端口。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
string | address | 要加入的多播組地址,不支持域名。 |
|||
function | callback | 加入多播組的操作完成后調用,並傳遞一個整型參數,表示平台無關的錯誤代碼。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
leaveGroup
chrome.socket.leaveGroup(integer socketId, string address, function callback)
從 Chrome 28 開始支持。
離開之前使用 joinGroup
加入的多播組。釋放套接字或退出前不用離開多播組,這會由操作系統自動調用。
離開多播組后,如果沒有其他進程仍然加入多播組,路由器不會繼續向本機發送多播數據包。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
string | address | 要離開的多播組地址,不支持域名。 |
|||
function | callback | 離開多播組的操作完成后調用,並傳遞一個整型參數,表示平台無關的錯誤代碼。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
setMulticastTimeToLive
chrome.socket.setMulticastTimeToLive(integer socketId, integer ttl, function callback)
從 Chrome 28 開始支持。
設置發送至多播組的多播數據包的 TTL 值。
調用該方法不需要多播權限。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
integer | ttl | TTL 值。 |
|||
function | callback | 配置操作完成后調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
setMulticastLoopbackMode
chrome.socket.setMulticastLoopbackMode(integer socketId, boolean enabled, function callback)
從 Chrome 28 開始支持。
設置主機向多播組發送的多播包是否要回環至主機。
注意:setMulticastLookbackMode
在 Windows 與類 Unix 系統上的行為不同。只有當同一主機上不止一個應用程序加入了同一個多播組,並且多播回環模式的設置不同時才會出現這一不一致性。在 Windows 中,關閉回環的應用程序不會接受到回環包;而在類 Unix 系統中,關閉回環的應用程序不會向同一主機上的其他應用程序發送回環包。請參見 MSDN:http://goo.gl/6vqbj。
調用該方法不需要多播權限。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
boolean | enabled | 表示是否啟用回環模式。 |
|||
function | callback | 配置操作完成后調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|
getJoinedGroups
chrome.socket.getJoinedGroups(integer socketId, function callback)
從 Chrome 28 開始支持。
獲取套接字當前加入的多播組地址。
參數 | |||||
---|---|---|---|---|---|
integer | socketId | 套接字標識符。 |
|||
function | callback | 調用時傳遞字符串數據,表示結果。 callback 參數應該是一個如下形式的函數: function(array of string groups) {...};
|
secure
chrome.socket.secure(integer socketId, object options, function callback)
從 Chrome 38 開始支持。警告:目前為 Dev 分支。了解更多內容
在已連接的 TCP 客戶端套接字上啟動 TLS 客戶端連接。
參數 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
integer | socketId | 要使用的套接字(已連接)。 |
|||||||||
object | (可選) options |
TLS 連接的約束和參數。
|
|||||||||
function | callback | 嘗試連接完成后調用。 callback 參數應該是一個如下形式的函數: function(integer result) {...};
|