chrome.socket


chrome.socket

https://chajian.baidu.com/developer/apps/socket.html#method-create

描述: 使用 chrome.socket API 通過 TCP 和 UDP 連接在網絡中發送和接收數據。注意:從 Chrome 33 開始該 API 棄用,您應該改用 sockets.udpsockets.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

要創建的套接字類型,必須為 "tcp" 或 "udp"

object (可選)
options

套接字選項。

function callback

套接字創建后調用。

callback 參數應該是一個如下形式的函數:

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

新創建套接字的標識符。

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) {...};
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) {...};
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) {...};
object readInfo
integer resultCode

read() 調用返回的結果代碼。

ArrayBuffer data  

write

chrome.socket.write(integer socketId, ArrayBuffer data, function callback)

向已連接的指定套接字寫入數據。

參數
integer socketId

套接字標識符。

ArrayBuffer data

要寫入的數據。

function callback

以非阻塞的方式在寫入操作完成或發生錯誤時調用。

callback 參數應該是一個如下形式的函數:

function( WriteInfo writeInfo) {...};
WriteInfo writeInfo  

recvFrom

chrome.socket.recvFrom(integer socketId, integer bufferSize, function callback)

從指定 UDP 套接字接收數據。

參數
integer socketId

套接字標識符。

integer (可選)
bufferSize

接收緩沖區大小。

function callback

返回接收操作的結果。

callback 參數應該是一個如下形式的函數:

function(object recvFromInfo) {...};
object recvFromInfo
integer resultCode

recvFrom() 調用返回的結果代碼。

ArrayBuffer data  
string address

遠程計算機的地址。

integer port  

sendTo

chrome.socket.sendTo(integer socketId, ArrayBuffer data, string address, integer port, function callback)

在指定 UDP 套接字上向指定地址與端口發送數據。

參數
integer socketId

套接字標識符。

ArrayBuffer data

要寫入的數據。

string address

遠程計算機的地址。

integer port

遠程計算機的端口。

function callback

以非阻塞的方式在發送操作完成或產生錯誤時調用。

callback 參數應該是一個如下形式的函數:

function( WriteInfo writeInfo) {...};
WriteInfo writeInfo  

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) {...};
integer result  

accept

chrome.socket.accept(integer socketId, function callback)

該方法僅適用於 TCP 套接字,注冊一個回調函數,當正在監聽的服務器套接字接受連接時調用。必須首先調用 listen。如果已經有活動的接受回調函數,該回調函數將立即執行,resultCode 包含錯誤。

參數
integer socketId

套接字標識符。

function callback

新的套接字接受時調用該回調函數。

callback 參數應該是一個如下形式的函數:

function(object acceptInfo) {...};
object acceptInfo
integer resultCode  
integer (可選)
socketId

已接受套接字的標識符。

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) {...};
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) {...};
boolean result  

getInfo

chrome.socket.getInfo(integer socketId, function callback)

獲取指定套接字的狀態。

參數
integer socketId

套接字標識符。

function callback

狀態可用時調用。

callback 參數應該是一個如下形式的函數:

function(object result) {...};
object result
SocketType socketType

傳遞的套接字類型,為 "tcp" 或 "udp"。

boolean connected

 

指定套接字是否已連接。對於 tcp 套接字,即使遠程計算機已經斷開連接,該屬性仍然為 true。讀取或寫入套接字可能會導致錯誤,表示該套接字應該通過 disconnect() 斷開連接。對於 udp 套接字,該屬性只是表示讀取和寫入數據包的默認遠程地址是否已經指定。

 

string (可選)
peerAddress

如果套接字已連接,則包含對方的 IPv4/6 地址。

integer (可選)
peerPort

如果套接字已連接,則包含對方的端口號。

string (可選)
localAddress

如果套接字已綁定或連接,則包含本機 IPv4/6 地址。

integer (可選)
localPort

如果套接字已綁定或連接,則包含本機端口。

getNetworkList

chrome.socket.getNetworkList(function callback)

獲取當前系統中本地適配器的有關信息。

參數
function callback

本地適配器信息可用時調用。

callback 參數應該是一個如下形式的函數:

function(array of object result) {...};
array of object result

每一個對象的屬性

string name

適配器的名稱,在 *nix 上通常為"eth0"、"lo" 等等。

string address

可用的 IPv4/6 地址。

integer prefixLength

前綴長度。

joinGroup

chrome.socket.joinGroup(integer socketId, string address, function callback)

從 Chrome 28 開始支持。

加入多播組,並開始接收數據包。調用該方法之前,套接字的類型必須是 UDP,並且已經綁定至本機端口。

參數
integer socketId

套接字標識符。

string address

要加入的多播組地址,不支持域名。

function callback

加入多播組的操作完成后調用,並傳遞一個整型參數,表示平台無關的錯誤代碼。

callback 參數應該是一個如下形式的函數:

function(integer result) {...};
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) {...};
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) {...};
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) {...};
integer result  

getJoinedGroups

chrome.socket.getJoinedGroups(integer socketId, function callback)

從 Chrome 28 開始支持。

獲取套接字當前加入的多播組地址。

參數
integer socketId

套接字標識符。

function callback

調用時傳遞字符串數據,表示結果。

callback 參數應該是一個如下形式的函數:

function(array of string groups) {...};
array of string groups  

secure

chrome.socket.secure(integer socketId, object options, function callback)

從 Chrome 38 開始支持。警告:目前為 Dev 分支。了解更多內容

在已連接的 TCP 客戶端套接字上啟動 TLS 客戶端連接。

參數
integer socketId

要使用的套接字(已連接)。

object (可選)
options

TLS 連接的約束和參數。

object (可選)
tlsVersion
string (可選)
min

可以接受的最低和最高 TLS 版本,可以為 ssl3tls1tls1.1 或 tls1.2

string (可選)
max
 
function callback

嘗試連接完成后調用。

callback 參數應該是一個如下形式的函數:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM