chrome.socket
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 参数应该是一个如下形式的函数:
|
||||||
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 参数应该是一个如下形式的函数:
|
|||
bind
chrome.socket.bind(integer socketId, string address, integer port, function callback)为套接字绑定本机地址。当前还不支持 TCP 套接字。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| string | address |
本机地址。 |
|||
| integer | port |
本机端口 |
|||
| function | callback |
绑定尝试完成后调用。 callback 参数应该是一个如下形式的函数:
|
|||
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 参数应该是一个如下形式的函数:
|
|||||||||
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 参数应该是一个如下形式的函数:
|
|||||||||||||||
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 参数应该是一个如下形式的函数:
|
|||
accept
chrome.socket.accept(integer socketId, function callback)该方法仅适用于 TCP 套接字,注册一个回调函数,当正在监听的服务器套接字接受连接时调用。必须首先调用 listen。如果已经有活动的接受回调函数,该回调函数将立即执行,resultCode 包含错误。
| 参数 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||||||||
| function | callback |
新的套接字接受时调用该回调函数。 callback 参数应该是一个如下形式的函数:
|
|||||||||
setKeepAlive
chrome.socket.setKeepAlive(integer socketId, boolean enable, integer delay, function callback)启用或禁用 TCP 连接保持活动状态的功能。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| boolean | enable |
如果为 true 的话,启用保持活动状态的功能。 |
|||
| integer | (可选) delay |
设置最后一次数据包接收与第一次活动状态检测之间的时间延迟,默认为 0。 |
|||
| function | callback |
操作完成后调用。 callback 参数应该是一个如下形式的函数:
|
|||
setNoDelay
chrome.socket.setNoDelay(integer socketId, boolean noDelay, function callback)设置或清除 TCP 连接的 TCP_NODELAY标志,当设置 TCP_NODELAY 标志时将禁用纳格算法。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| boolean | noDelay |
如果为 true 的话,禁用纳格算法。 |
|||
| function | callback |
操作完成后调用。 callback 参数应该是一个如下形式的函数:
|
|||
getInfo
chrome.socket.getInfo(integer socketId, function callback)获取指定套接字的状态。
| 参数 | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||||||||||||||||||||
| function | callback |
状态可用时调用。 callback 参数应该是一个如下形式的函数:
|
|||||||||||||||||||||
getNetworkList
chrome.socket.getNetworkList(function callback)获取当前系统中本地适配器的有关信息。
| 参数 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| function | callback |
本地适配器信息可用时调用。 callback 参数应该是一个如下形式的函数:
|
||||||||||||
joinGroup
chrome.socket.joinGroup(integer socketId, string address, function callback)从 Chrome 28 开始支持。
加入多播组,并开始接收数据包。调用该方法之前,套接字的类型必须是 UDP,并且已经绑定至本机端口。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| string | address |
要加入的多播组地址,不支持域名。 |
|||
| function | callback |
加入多播组的操作完成后调用,并传递一个整型参数,表示平台无关的错误代码。 callback 参数应该是一个如下形式的函数:
|
|||
leaveGroup
chrome.socket.leaveGroup(integer socketId, string address, function callback)从 Chrome 28 开始支持。
离开之前使用 joinGroup 加入的多播组。释放套接字或退出前不用离开多播组,这会由操作系统自动调用。
离开多播组后,如果没有其他进程仍然加入多播组,路由器不会继续向本机发送多播数据包。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| string | address |
要离开的多播组地址,不支持域名。 |
|||
| function | callback |
离开多播组的操作完成后调用,并传递一个整型参数,表示平台无关的错误代码。 callback 参数应该是一个如下形式的函数:
|
|||
setMulticastTimeToLive
chrome.socket.setMulticastTimeToLive(integer socketId, integer ttl, function callback)从 Chrome 28 开始支持。
设置发送至多播组的多播数据包的 TTL 值。
调用该方法不需要多播权限。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| integer | ttl |
TTL 值。 |
|||
| function | callback |
配置操作完成后调用。 callback 参数应该是一个如下形式的函数:
|
|||
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 参数应该是一个如下形式的函数:
|
|||
getJoinedGroups
chrome.socket.getJoinedGroups(integer socketId, function callback)从 Chrome 28 开始支持。
获取套接字当前加入的多播组地址。
| 参数 | |||||
|---|---|---|---|---|---|
| integer | socketId |
套接字标识符。 |
|||
| function | callback |
调用时传递字符串数据,表示结果。 callback 参数应该是一个如下形式的函数:
|
|||
secure
chrome.socket.secure(integer socketId, object options, function callback)从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容
在已连接的 TCP 客户端套接字上启动 TLS 客户端连接。
| 参数 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| integer | socketId |
要使用的套接字(已连接)。 |
|||||||||
| object | (可选) options |
TLS 连接的约束和参数。
|
|||||||||
| function | callback |
尝试连接完成后调用。 callback 参数应该是一个如下形式的函数:
|
|||||||||
chrome.socket的更多相关文章
- [FQ]Tor + Chrome + PAC 尝试 FQ
记录一次比较成功的FQ经历 1.从Tor官网下载最新的Tor browser,速度较慢可以从文末给出的链接中下载. 2.安装Tor browser. 3. Tor网络设置 3.1 那个描述与你的情况最 ...
- [转]emailjs-smtp-client
本文转自:https://github.com/emailjs/emailjs-smtp-client/blob/master/README.md SMTP Client SMTP Client al ...
- 使用Node.js+Socket.IO搭建WebSocket实时应用
Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...
- python网络编程-socket编程
一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...
- socket.io简单入门(一.实现简单的图表推送)
引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...
- C#中使用Socket请求Web服务器过程
最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问: ...
- Node.js + Web Socket 打造即时聊天程序嗨聊
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...
- Chrome开发者工具详解(5)-Application、Security、Audits面板
Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...
- chrome 浏览器的预提取资源机制导致的一个请求发送两次的问题以及ClientAbortException异常
调查一个 pdf 打印报错: ExceptionConverter: org.apache.catalina.connector.ClientAbortException: java.net.Sock ...
随机推荐
- select 修改选中时候的默认默认样式 outline:none 把系统的线关了 然后自己再border一下
chrome 查看样式的时候默认没有 focus的样式,可以把选择器开开select 修改选中时候的默认默认样式 outline:none 把系统的线关了 然后自己再border一下input:foc ...
- Python的前世今生
放弃 拾起 放弃 拾起 最终决定好好的编写一次Python的学习笔记 人生苦短,我用Python --------------Life is short, you need Python 再不抓紧,就 ...
- Web项目ConcurrentModificationException异常
后台SSH在做Session删除的时候,遇到了ConcurrentModificationException异常. 参考资料:http://blog.csdn.net/idesvo/article/d ...
- C++ 之 string
C++ 的 string 类封装了很多对字符串的常用操作. string 类是模板类 basic_string类,以 char作为其元素类型的类. string 以单字节作为一个字符,如果处理多字符集 ...
- C++ 标准模板库介绍(STL)
1. STL 基本介绍 C++ STL(标准模板库)是惠普实验室开发的一系列软件的统称,是一套功能强大的 C++ 模板类.STL的目的是为了标准化组件,这样就不用重新开发,让后来者可以使用现成的组件, ...
- 笔试算法题(33):烙饼排序问题 & N!阶乘十进制末尾0的个数二进制最低1的位置
出题:不同大小烙饼的排序问题:对于N块大小不一的烙饼,上下累在一起,由于一只手托着所有的饼,所以仅有一只手可以翻转饼(假设手足够大可以翻转任意块数的 饼),规定所有的大饼都出现在小饼的下面则说明已经排 ...
- [LUOGU] P1466 集合 Subset Sums
题目描述 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子 ...
- PHP明细之间的关联和having进行分组,不推荐这样做,只是做为偷懒的办法
-- 只求和wrt的数据,其它数据保持不变!SELECT A.return_id,A.relevant_id,A.order_id,A.deliver_order_id,A.product_id,A. ...
- 运用 node + express + http-proxy-middleware 实现前端代理跨域的 详细实例哦
一.你需要准备的知识储备 运用node的包管理工具npm 安装插件.中间件的基本知识: 2.express框架的一些基础知识,知道如何建立一个小的服务器:晓得如何快速的搭建一个express框架小应用 ...
- 用element-ui的走马灯carousel轻松实现自适应全屏banner图
写在前面:网站轮播图建议使用swiper组件,非常方便快捷.vue轮播图插件之vue-awesome-swiper 接手一个项目,轮播图是用element-ui的carousel实现的,看起来效果还不 ...