Object 内置对象

对象 HttpServer

http 服务器对象

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

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

创建方法:

1 2 3 4
var http = require("http"); var svr = new http.Server(80, function(req) { ... });

继承关系

构造函数

HttpServer

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

1 2
new HttpServer(Integer port, Handler hdlr);

调用参数:

  • port: Integer, 指定 http 服务器侦听端口
  • hdlr: Handler, http 内置消息处理器,处理函数,链式处理数组,路由对象,详见 mq.Handler

HttpServer 构造函数

1 2 3
new HttpServer(String addr, Integer port, Handler hdlr);

调用参数:

  • addr: String, 指定 http 服务器侦听地址,为 "" 则在本机所有地址侦听
  • port: Integer, 指定 http 服务器侦听端口
  • hdlr: Handler, http 内置消息处理器,处理函数,链式处理数组,路由对象,详见 mq.Handler

成员属性

crossDomain

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

1
Boolean HttpServer.crossDomain;

forceGZIP

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

1
Boolean HttpServer.forceGZIP;

maxHeadersCount

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

1
Integer HttpServer.maxHeadersCount;

maxBodySize

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

1
Integer HttpServer.maxBodySize;

serverName

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

1
String HttpServer.serverName;

httpStats

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

1
readonly Stats HttpServer.httpStats;

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

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

socket

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

1
readonly Socket HttpServer.socket;

handler

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

1
Handler HttpServer.handler;

stats

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

1
readonly Stats HttpServer.stats;

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

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

成员函数

onerror

设置错误处理器

1
HttpServer.onerror(Object hdlrs);

调用参数:

  • hdlrs: Object, 指定不同的错误的处理器,key 是错误号,value 是处理器,可以是内置消息处理器,处理函数,链式处理数组,路由对象,详见 mq.Handler

使用方式:

1 2 3 4 5 6
hdlr.onerror({ "404": function(v) { ... }, "500": new mq.Routing(...) })

run

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

1
HttpServer.run() async;

asyncRun

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

1
HttpServer.asyncRun();

stop

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

1
HttpServer.stop() async;

dispose

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

1
HttpServer.dispose();

equals

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

1
Boolean HttpServer.equals(object expected);

调用参数:

  • expected: object, 制定比较的目标对象

返回结果:

  • Boolean, 返回对象比较的结果

toString

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

1
String HttpServer.toString();

返回结果:

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

toJSON

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

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

调用参数:

  • key: String, 未使用

返回结果:

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