对象 HttpsServer

https 服务器对象

https 服务器对象是将 SslServerHttpHandler 组合封装的对象,方便快速搭建服务器,逻辑上相当于:

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

创建方法:

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

继承关系

构造函数

HttpsServer

HttpsServer 构造函数,在所有本机地址侦听

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

调用参数:

certs 格式为:

[{
        crt: [X509Cert object],
        key: [PKey object]
    },
    {
        crt: [X509Cert object],
        key: [PKey object]
    }
]

HttpsServer 构造函数

new HttpsServer(Array certs,
    String addr,
    Integer port,
    Handler hdlr);

调用参数:

certs 格式为:

[{
        crt: [X509Cert object],
        key: [PKey object]
    },
    {
        crt: [X509Cert object],
        key: [PKey object]
    }
]

HttpsServer 构造函数,在所有本机地址侦听

new HttpsServer(X509Cert crt,
    PKey key,
    Integer port,
    Handler hdlr);

调用参数:


HttpsServer 构造函数

new HttpsServer(X509Cert crt,
    PKey key,
    String addr,
    Integer port,
    Handler hdlr);

调用参数:

成员属性

verification

Integer, 设定证书验证模式,缺省为 VERIFY_NONE

Integer HttpsServer.verification;

ca

X509Cert, 客户端证书验证 ca

readonly X509Cert HttpsServer.ca;

crossDomain

Boolean, 查询和设置是否允许跨域请求,缺省为 false

Boolean HttpsServer.crossDomain;

forceGZIP

Boolean, 查询和设置是否允强制使用 gzip 压缩输出,缺省为 false

Boolean HttpsServer.forceGZIP;

maxHeadersCount

Integer, 查询和设置最大请求头个数,缺省为 128

Integer HttpsServer.maxHeadersCount;

maxBodySize

Integer, 查询和设置 body 最大尺寸,以 MB 为单位,缺省为 64

Integer HttpsServer.maxBodySize;

serverName

String, 查询和设置服务器名称,缺省为:fibjs/0.x.0

String HttpsServer.serverName;

httpStats

Stats, 查询 http 协议转换处理器的工作状态

readonly Stats HttpsServer.httpStats;

返回的结果为一个 Stats 对象,结构如下:

{
    total: 1000, // 总计处理的请求
    pendding: 100, // 当前正在处理的请求
    request: 10, // 新建的请求
    response: 10, // 发送的响应
    error: 100, // 发生的错误(不计入 404)
    error_400: 10, // 发生的请求错误
    error_404: 12, // 文件未找到的数量
    error_500: 2 // 内部处理错误
}

socket

Socket, 服务器当前侦听的 Socket 对象

readonly Socket HttpsServer.socket;

handler

Handler, 服务器当前事件处理接口对象

Handler HttpsServer.handler;

stats

Stats, 查询当前服务器运行状态

readonly Stats HttpsServer.stats;

返回的结果为一个 Stats 对象,初始化计数器如下:

{
    total: 1000, // 总计处理的连接
    connections: 100, // 当前正在处理的连接
    accept: 10, // 上次查询后新建的连接
    close: 10 // 上次查询后关闭的连接
}

成员函数

onerror

设置错误处理器

HttpsServer.onerror(Object hdlrs);

调用参数:

使用方式:

hdlr.onerror({
    "404": function(v) {
        ...
    },
    "500": new mq.Routing(...)
})

run

运行服务器并开始接收和分发连接,此函数不会返回

HttpsServer.run() async;

asyncRun

异步运行服务器并开始接收和分发连接,调用后立即返回,服务器在后台运行

HttpsServer.asyncRun();

stop

关闭 socket中止正在运行的服务器

HttpsServer.stop() async;

dispose

强制回收对象,调用此方法后,对象资源将立即释放

HttpsServer.dispose();

equals

比较当前对象与给定的对象是否相等

Boolean HttpsServer.equals(object expected);

调用参数:

返回结果:


toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

String HttpsServer.toString();

返回结果:


toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

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

调用参数:

返回结果:


valueOf

返回对象本身的数值

Value HttpsServer.valueOf();

返回结果: