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  

chrome.socket的更多相关文章

  1. [FQ]Tor + Chrome + PAC 尝试 FQ

    记录一次比较成功的FQ经历 1.从Tor官网下载最新的Tor browser,速度较慢可以从文末给出的链接中下载. 2.安装Tor browser. 3. Tor网络设置 3.1 那个描述与你的情况最 ...

  2. [转]emailjs-smtp-client

    本文转自:https://github.com/emailjs/emailjs-smtp-client/blob/master/README.md SMTP Client SMTP Client al ...

  3. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  4. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  5. socket.io简单入门(一.实现简单的图表推送)

    引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...

  6. C#中使用Socket请求Web服务器过程

    最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问: ...

  7. Node.js + Web Socket 打造即时聊天程序嗨聊

    前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...

  8. Chrome开发者工具详解(5)-Application、Security、Audits面板

    Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...

  9. chrome 浏览器的预提取资源机制导致的一个请求发送两次的问题以及ClientAbortException异常

    调查一个 pdf 打印报错: ExceptionConverter: org.apache.catalina.connector.ClientAbortException: java.net.Sock ...

随机推荐

  1. sysbench下载安装

    涉及到sysbench源码的配置和编译,首先确认系统安装了gcc gcc-c++编译器:确认安装了autoconf .automake.libtool等:[root@PC download]# rpm ...

  2. AngularJS小练习20170508

    首先可能需要安装npm,并且配置环境. 1.打开Dos(命令提示符).按Windows徽标键+R组合键,输入cmd然后按回车键进入Dos. 2.安装Yeoman.在Dos下输入npm install ...

  3. 指定PHP编码

    有时候我们写好的PHP页面在网页中打开是乱码的,就需要指定编码,即加入代码: header("content-type:text/html;charset=utf-8"); 位置图 ...

  4. vue 画二维码

    首先安装一下相关的插件 qrcode2 npm install --save qrcode2 然后在需要画二维码的页面引入一下 import QRCode from 'qrcode2' 最后在meth ...

  5. 快速创建你xmlhttp的方法

    function initxmlhttp() {     var xmlhttp     try {         xmlhttp=new ActiveXObject("Msxml2.XM ...

  6. webpack4前端工程化教程(一)

    -本文作为webpack小白入门文章,会详细地介绍webpack的用途.具体的安装步骤.注意事项.一些基本的配置项,并且会以一个具体的项目实例来介绍如何使用webpack.另外,本文会简单地介绍一些最 ...

  7. c++基础_特殊的数字

    #include <iostream> #include <math.h> using namespace std; int main(){ ;i<;i++){ ; )% ...

  8. 从PDF复制到word(换行问题)

    当我们从pdf文档中复制一部分内容到word的时候,pdf的自动换行会自动给文字添加换行,也就是一个回车,让文字另起一行,这样粘贴到word中的时候,word中也会有很多换行符,排版比较麻烦,需要一个 ...

  9. 2014-4-5安装python以及基础知识

    1.下载安装 从python官网下载python2.7.6 https://www.python.org/download/releases/2.7.6 建议用迅雷下载 会比较快 2.交互式解释器 运 ...

  10. Happy Three Friends

    Happy Three Friends Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...