Object 內建對象

物件TcpServer

TcpServer` 是高並發的TCPSocket伺服器,可以用來建立一個初始狀態下已經與客戶端建立了TCP 連線的TCP 伺服器

使用TcpServer物件可以迅速建立一個多纖程並發處理的TCP 伺服器。當有客戶端連接到這個監聽的位址時,回呼函數會被呼叫並傳回一個新的被連接的 對象Socket,我們可以使用這個物件來往客戶端發送或接收TCP 封包。

以下是一個基於TcpServer物件來實現的回寫客戶端TCP 封包的具體範例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
const net = require("net"); function onConnect(conn) { console.log(`new client accepted! local:${conn.localAddress}, remote:${conn.remoteAddress}`); const data = conn.read(); if (data) { console.log(`recv data on fn onConnect: ${data}`); conn.write(data); } conn.close(); } new net.TcpServer('0.0.0.0', 8080, onConnect).start(); console.log('server is running on port: 8080');

在上述程式碼中,我們建立了一個TcpServer物件並透過回呼函數onConnect來處理接收到的客戶端請求訊息,將其中的資料回寫到客戶端。

當啟動這個服務時,它將監聽 連接8080埠上面的所有IP 位址和請求,當你透過telnet或其他客戶端工具連接到該服務時,你將會看到服務列印連接訊息,並將你發送的每一條請求原樣發送回去。

繼承關係

%0 object object toString() toJSON() TcpServer TcpServer new TcpServer() socket handler start() 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

TcpServer 建構函數

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

呼叫參數:

  • addr: String, 指定unix socket 或Windows pipe 伺服器偵聽位址
  • listener:Handler, 指定tcp 接收的連接的內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler

成員屬性

socket

Socket, 伺服器目前偵聽的Socket物件

1
readonly Socket TcpServer.socket;

handler

Handler, 伺服器目前事件處理介面對象

1
Handler TcpServer.handler;

成員函數

start

啟動目前伺服器

1
TcpServer.start();

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 序列化的值