# web.socket.chrome 库模块帮助文档

## web.socket.chrome 成员列表 <a id="web.socket.chrome" href="#web.socket.chrome">&#x23;</a>

chrome远程调试接口  
WebSocket / JSON-RPC 2.0 单线程异步客户端  
[chrome远程调试接口文档]( https://chromedevtools.github.io/devtools-protocol/ )

### web.socket.chrome.lastRemoteDebuggingPort <a id="web.socket.chrome.lastRemoteDebuggingPort" href="#web.socket.chrome.lastRemoteDebuggingPort">&#x23;</a>
最近连接的远程调试端口号，也可以使用些属性指定下次连接远程调试服务端使用的默认端口

## web.socket 成员列表 <a id="web.socket" href="#web.socket">&#x23;</a>

### web.socket.chrome() <a id="web.socket.chrome" href="#web.socket.chrome">&#x23;</a>
创建chrome远程调试客户端  

[返回对象:websocketchromeClientObject](#websocketchromeClientObject)

## websocketchromeClientObject 成员列表 <a id="websocketchromeClientObject" href="#websocketchromeClientObject">&#x23;</a>

### websocketchromeClientObject.* <a id="websocketchromeClientObject.any" href="#websocketchromeClientObject.any">&#x23;</a>
远程对象名或远程方法名字,  
作为函数调用时返回一个调用对象,  
通过指定返回调用对象的 end 属性定义调用结束回调函数,例如:  
ret.end=function(result,err){  

}  
回调参数 result 为调用返回值,err 为错误信息,  
如果调和成功,err参数为null  

[返回对象:WebSocketJsonClientObject](https://www.aardio.com/zh-cn/doc/library-reference/web/socket/jsonClient.html#WebSocketJsonClientObject)

### websocketchromeClientObject.connect("ws://") <a id="websocketchromeClientObject.connect" href="#websocketchromeClientObject.connect">&#x23;</a>
重新连接到WebSocket服务端  
参数指定WebSocket服务端网址，例如 "ws://localhost:7511"  
如果不指定参数,则获取上次调用此函数指定的网址参数,  
如果之前也没有指定网址则尝试自动查找可用接口地址  

如果存在可用的远程接口地址,此函数返回true,否则返回null  
但返回true并不表示连接成功,应在 open 事件中判断是否连接成功  

Chrome 的远程调试接口必须是独占模式,  
Chrom e开发工具连上去了,再连接就会失败。  
Chrome 在整个系统只能用一个端口，启动一个开发工具

### websocketchromeClientObject.connectFirstDebuggingPage() <a id="websocketchromeClientObject.connectFirstDebuggingPage" href="#websocketchromeClientObject.connectFirstDebuggingPage">&#x23;</a>
连接到指定端口的首个有效调试页面对象,   
参数指定远程调试端口号，或者拥有remoteDebuggingPort属性的对象

### websocketchromeClientObject.eachDebuggingPage(port) <a id="websocketchromeClientObject.eachDebuggingPage" href="#websocketchromeClientObject.eachDebuggingPage">&#x23;</a>

```aardio
for id,title,wsUrl,devtoolsUrl in websocketchromeClientObject.eachDebuggingPage(/*参数指定远程调试端口号，或者拥有remoteDebuggingPort属性的对象*/) {

}
```

### websocketchromeClientObject.getDebuggingInfo() <a id="websocketchromeClientObject.getDebuggingInfo" href="#websocketchromeClientObject.getDebuggingInfo">&#x23;</a>
用于获取远程调试服务端信息  
参数指定远程调试端口号，或者拥有remoteDebuggingPort属性的对象  
返回的参数是一个数组,即使失败也会返回空数组  
每个元素是一个表

### websocketchromeClientObject.getDebuggingPages() <a id="websocketchromeClientObject.getDebuggingPages" href="#websocketchromeClientObject.getDebuggingPages">&#x23;</a>
用于获取所有可以远程调试的页面对象  
参数指定远程调试端口号，或者拥有remoteDebuggingPort属性的对象  
返回的参数是一个数组,即使失败也会返回空数组  
每个元素是页面信息表

### websocketchromeClientObject.isClosed() <a id="websocketchromeClientObject.isClosed" href="#websocketchromeClientObject.isClosed">&#x23;</a>
套接字是否已关闭

### websocketchromeClientObject.isConnected() <a id="websocketchromeClientObject.isConnected" href="#websocketchromeClientObject.isConnected">&#x23;</a>
套接字是否已连接并准备就绪(已与服务器握手成功)

### websocketchromeClientObject.on("close",proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("close",function(e){  
	/*连接被关闭  
e.code为错误代码e.reason为错误原因*/  
})
```

### websocketchromeClientObject.on("error",proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("error",function(err){  
	/*发生错误,err为错误信息*/  
})
```

### websocketchromeClientObject.on("fragment",proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("fragment",function(msg){  
   /*收到分片数据  
第一个数据包使用msg.type指明类型,参考WebSocket协议规范  
后续数据包msg.type为0,最后一个数据包msg.fin为1  

如果不指定这个回调函数,则自动并接分片数据后触发onMessage事件*/	  
})
```

### websocketchromeClientObject.on("message",proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("message",function(msg){  
    /*收到服务端数据  
msg.type 为 1 时 msg.data 为文本,  
否则 msg.data 为字节串（buffer 类型）*/  
})
```

### websocketchromeClientObject.on("open",proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("open",function(){  
	/*已打开连接*/		  
}
```

### websocketchromeClientObject.on(method,proc) <a id="websocketchromeClientObject.on" href="#websocketchromeClientObject.on">&#x23;</a>

```aardio
websocketchromeClientObject.on("/*需要监听的Rpc通知事件名字*/",function(param){  

})
```

### websocketchromeClientObject.readyState <a id="websocketchromeClientObject.readyState" href="#websocketchromeClientObject.readyState">&#x23;</a>
连接状态,  
0为等待连接,1为已连接并准备就绪,2为正在关闭,3为已关闭  
只有成功通过WebSocket协议握手以后readyState才会被置为1  
这与socket.readyState连接成功就会置为1是不同的

### websocketchromeClientObject.rpc <a id="websocketchromeClientObject.rpc" href="#websocketchromeClientObject.rpc">&#x23;</a>
WebSocket客户端对象  
此对象的成员谨慎改动  

[返回对象:websocketjsonClientrpcObject](#websocketjsonClientrpcObject)

### websocketchromeClientObject.waitForConnected(关联窗口句柄,超时) <a id="websocketchromeClientObject.waitForConnected" href="#websocketchromeClientObject.waitForConnected">&#x23;</a>
等待连接到远程调试接口。  
所有参数可选,超时以毫秒为单位。  

连接成功返回 true ,失败返回false 或 null
