Object 內置對象

對象HttpsServer

https 服務器對象

https 服務器對像是將 SslServerHttpHandler 組合封裝的對象,方便快速搭建服務器,邏輯上相當於:

1 2 3
var svr = new net.SslServer(crt, key, addr, port, new http.Handler(function(req) { ... }));

創建方法:

1 2 3 4
var http = require("http"); var svr = new http.HttpsServer(crt, key, 443, function(req) { ... });

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>TcpServer|new TcpServer()|socket;handler|start();stop()] [<class>HttpServer|new HttpServer()|maxHeadersCount;maxBodySize;serverName|enableCrossOrigin()] [<this>HttpsServer|new HttpsServer()|verification;ca] [object] <:- [TcpServer] [TcpServer] <:- [HttpServer] [HttpServer] <:- [HttpsServer] TcpServer new TcpServer() socket handler start() stop() HttpServer new HttpServer() maxHeadersCount maxBodySize serverName enableCrossOrigin() HttpsServer new HttpsServer() verification ca object toString() toJSON()

構造函數

HttpsServer

HttpsServer 構造函數,在所有本機地址偵聽

1 2 3
new HttpsServer(Array certs, Integer port, Handler hdlr);

調用參數:

  • certs: Array, 服務器證書列表
  • port: Integer, 指定 http 服務器偵聽端口
  • hdlr: Handler, http 內置消息處理器,處理函數,鍊式處理數組,路由對象,詳見

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] } ]

HttpsServer 構造函數

1 2 3 4
new HttpsServer(Array certs, String addr, Integer port, Handler hdlr);

調用參數:

  • certs: Array, 服務器證書列表
  • addr: String, 指定 http 服務器偵聽地址,為"" 則在本機所有地址偵聽
  • port: Integer, 指定 http 服務器偵聽端口
  • hdlr: Handler, http 內置消息處理器,處理函數,鍊式處理數組,路由對象,詳見

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] } ]

HttpsServer 構造函數,在所有本機地址偵聽

1 2 3 4
new HttpsServer(X509Cert crt, PKey key, Integer port, Handler hdlr);

調用參數:

  • crt: X509Cert, X509Cert 證書,用於客戶端驗證服務器
  • key: PKey, PKey 私鑰,用於與客戶端會話
  • port: Integer, 指定 http 服務器偵聽端口
  • hdlr: Handler, http 內置消息處理器,處理函數,鍊式處理數組,路由對象,詳見

HttpsServer 構造函數

1 2 3 4 5
new HttpsServer(X509Cert crt, PKey key, String addr, Integer port, Handler hdlr);

調用參數:

  • crt: X509Cert, X509Cert 證書,用於客戶端驗證服務器
  • key: PKey, PKey 私鑰,用於與客戶端會話
  • addr: String, 指定 http 服務器偵聽地址,為"" 則在本機所有地址偵聽
  • port: Integer, 指定 http 服務器偵聽端口
  • hdlr: Handler, http 內置消息處理器,處理函數,鍊式處理數組,路由對象,詳見

成員屬性

verification

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

1
Integer HttpsServer.verification;

ca

X509Cert, 客戶端證書驗證ca

1
readonly X509Cert HttpsServer.ca;

maxHeadersCount

Integer, 查詢和設置最大請求頭個數,缺省為128

1
Integer HttpsServer.maxHeadersCount;

maxBodySize

Integer, 查詢和設置body 最大尺寸,以MB 為單位,缺省為64

1
Integer HttpsServer.maxBodySize;

serverName

String, 查詢和設置服務器名稱,缺省為:fibjs/0.x.0

1
String HttpsServer.serverName;

socket

Socket, 服務器當前偵聽的 Socket 對象

1
readonly Socket HttpsServer.socket;

handler

Handler, 服務器當前事件處理接口對象

1
Handler HttpsServer.handler;

成員函數

enableCrossOrigin

允許跨域請求

1
HttpsServer.enableCrossOrigin(String allowHeaders = "Content-Type");

調用參數:

  • allowHeaders: String, 指定接受的 http 頭字段

start

啟動當前服務器

1
HttpsServer.start();

stop

關閉socket中止正在運行的服務器

1
HttpsServer.stop() async;

toString

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

1
String HttpsServer.toString();

返回結果:

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

toJSON

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

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

調用參數:

  • key: String, 未使用

返回結果:

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