对象 SslSocket
ssl 网络套接口对象
SslSocket 属于 ssl 模块,创建方法
1var s = new ssl.Socket();
继承关系
构造函数
SslSocket
SslSocket 构造函数,创建一个新的 SslSocket 对象
1new SslSocket(Array certs = []);
调用参数:
- certs: Array, 服务器证书列表
certs 格式为:
1
2
3
4
5
6
7
8
9
10
11[{
name: "fibjs.org",
crt: [X509Cert object],
key: [PKey object]
},
{
name: "*.fibjs.org",
crt: [X509Cert object],
key: [PKey object]
}
]
SslSocket 构造函数,创建一个新的 SslSocket 对象
1
2new SslSocket(X509Cert crt,
PKey key);
调用参数:
成员属性
verification
Integer, 设定证书验证模式,缺省为 VERIFY_REQUIRED
1Integer SslSocket.verification;
ca
X509Cert, 证书链,客户端模式 connect 时自动引用 ssl.ca,服务器模式 accept 生成 SslSocket 自动引用当前 SslSocket 的 ca
1readonly X509Cert SslSocket.ca;
peerCert
X509Cert, 连接对方的证书
1readonly X509Cert SslSocket.peerCert;
hostname
String, 连接的主机名
1readonly String SslSocket.hostname;
stream
1readonly Stream SslSocket.stream;
fd
Integer, 查询 Stream 对应的文件描述符值, 由子类实现
1readonly Integer SslSocket.fd;
成员函数
connect
在给定的连接上连接 ssl 连接,客户端模式
1
2Integer SslSocket.connect(Stream s,
String server_name = "") async;
调用参数:
- s: Stream, 给定的底层连接
- server_name: String, 指定服务器名称,可缺省
返回结果:
- Integer, 连接成功返回 0,证书可选验证时,验证不成功则返回非 0,详细错误见 ssl 模块
accept
在给定的连接上接收一个 ssl 连接,并生成一个新的 SslSocket
1SslSocket SslSocket.accept(Stream s) async;
调用参数:
- s: Stream, 给定的底层连接
返回结果:
- SslSocket, 返回新建立的 SslSocket 对象
read
从流内读取指定大小的数据
1Buffer SslSocket.read(Integer bytes = -1) async;
调用参数:
- bytes: Integer, 指定要读取的数据量,缺省为读取随机大小的数据块,读出的数据尺寸取决于设备
返回结果:
- Buffer, 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null
write
将给定的数据写入流
1SslSocket.write(Buffer data) async;
调用参数:
- data: Buffer, 给定要写入的数据
flush
将文件缓冲区内容写入物理设备
1SslSocket.flush() async;
close
关闭当前流对象
1SslSocket.close() async;
copyTo
复制流数据到目标流中
1
2Long SslSocket.copyTo(Stream stm,
Long bytes = -1) async;
调用参数:
- stm: Stream, 目标流对象
- bytes: Long, 复制的字节数
返回结果:
- Long, 返回复制的字节数
toString
返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现
1String SslSocket.toString();
返回结果:
- String, 返回对象的字符串表示
toJSON
返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合
1Value SslSocket.toJSON(String key = "");
调用参数:
- key: String, 未使用
返回结果:
- Value, 返回包含可 JSON 序列化的值