Object 内置对象

对象 TcpServer

tcp 服务器对象,可方便创建一个标准多纤程 tcp 服务器

使用 TcpServer 对象可以迅速创建一个多纤程并发处理的 tcp 服务器。

1 2 3 4 5 6 7 8 9 10
function func(conn) { var data; while (data = conn.read()) conn.write(data); conn.close(); } new net.TcpServer(8080, func).run();

继承关系

%0 object object toString() toJSON() TcpServer TcpServer new TcpServer() socket handler stats run() asyncRun() stop() object->TcpServer HttpServer HttpServer TcpServer->HttpServer SslServer SslServer TcpServer->SslServer HttpsServer HttpsServer HttpServer->HttpsServer

构造函数

TcpServer

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

1 2
new TcpServer(Integer port, Handler listener);

调用参数:

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

TcpServer 构造函数

1 2 3
new TcpServer(String addr, Integer port, Handler listener);

调用参数:

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

成员属性

socket

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

1
readonly Socket TcpServer.socket;

handler

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

1
Handler TcpServer.handler;

stats

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

1
readonly Stats TcpServer.stats;

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

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

成员函数

run

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

1
TcpServer.run() async;

asyncRun

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

1
TcpServer.asyncRun();

stop

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

1
TcpServer.stop() async;

toString

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

1
String TcpServer.toString();

返回结果:

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

toJSON

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

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

调用参数:

  • key: String, 未使用

返回结果:

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