Object 內置對象

對象SslSocket

ssl 網絡套接口對象

SslSocket 屬於 ssl 模塊,創建方法

1
var s = new ssl.Socket();

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>Stream|fd|read();write();flush();close();copyTo()] [<this>SslSocket|new SslSocket()|verification;ca;peerCert;hostname;stream|connect();accept()] [object] <:- [Stream] [Stream] <:- [SslSocket] SslSocket new SslSocket() verification ca peerCert hostname stream connect() accept() Stream fd read() write() flush() close() copyTo() object toString() toJSON()

構造函數

SslSocket

SslSocket 構造函數,創建一個新的SslSocket 對象

1
new 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 2
new SslSocket(X509Cert crt, PKey key);

調用參數:

成員屬性

verification

Integer, 設定證書驗證模式,缺省為VERIFY_REQUIRED

1
Integer SslSocket.verification;

ca

X509Cert, 證書鏈,客戶端模式connect 時自動引用 ssl.ca,服務器模式accept 生成SslSocket 自動引用當前SslSocket 的ca

1
readonly X509Cert SslSocket.ca;

peerCert

X509Cert, 連接對方的證書

1
readonly X509Cert SslSocket.peerCert;

hostname

String, 連接的主機名

1
readonly String SslSocket.hostname;

stream

Stream, 查詢消息 ssl 建立時的下層流對象

1
readonly Stream SslSocket.stream;

fd

Integer, 查詢 Stream 對應的文件描述符值, 由子類實現

1
readonly Integer SslSocket.fd;

成員函數

connect

在給定的連接上連接 ssl 連接,客戶端模式

1 2
Integer SslSocket.connect(Stream s, String server_name = "") async;

調用參數:

  • s: Stream, 給定的底層連接
  • server_name: String, 指定服務器名稱,可缺省

返回結果:

  • Integer, 連接成功返回0,證書可選驗證時,驗證不成功則返回非0,詳細錯誤見 ssl 模塊

accept

在給定的連接上接收一個 ssl 連接,並生成一個新的SslSocket

1
SslSocket SslSocket.accept(Stream s) async;

調用參數:

  • s: Stream, 給定的底層連接

返回結果:

  • SslSocket, 返回新建立的SslSocket 對象

read

從流內讀取指定大小的數據

1
Buffer SslSocket.read(Integer bytes = -1) async;

調用參數:

  • bytes: Integer, 指定要讀取的數據量,缺省為讀取隨機大小的數據塊,讀出的數據尺寸取決於設備

返回結果:

  • Buffer, 返回從流內讀取的數據,若無數據可讀,或者連接中斷,則返回null

write

將給定的數據寫入流

1
SslSocket.write(Buffer data) async;

調用參數:

  • data: Buffer, 給定要寫入的數據

flush

將文件緩衝區內容寫入物理設備

1
SslSocket.flush() async;

close

關閉當前流對象

1
SslSocket.close() async;

copyTo

複製流數據到目標流中

1 2
Long SslSocket.copyTo(Stream stm, Long bytes = -1) async;

調用參數:

  • stm: Stream, 目標流對象
  • bytes: Long, 複製的字節數

返回結果:

  • Long, 返回複製的字節數

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String SslSocket.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value SslSocket.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值