HttpServer(HTTP 服务器) PRO
HttpServer 类提供了在本地或局域网中启动一个轻量级 HTTP 服务器的能力,可用于处理 HTTP 请求、静态文件服务、WebSocket 通信等场景。该类在脚本中常用于本地 Web 调试、远程控制、设备通信等。
概述
HttpServer 支持以下功能:
- 处理自定义路径的 HTTP 请求。
- 提供静态文件或目录的访问。
- 注册 WebSocket 服务端,实现实时通信。
- 支持 IPv4 与 IPv6 地址。
- 可选择端口号(支持随机端口)。
- 支持服务器状态查询。
属性
state: HttpServerState
服务器当前状态。 可能值包括:
port: number | null
服务器监听的端口号。
如果服务器未运行,则为 null。
isIPv4: boolean
指示服务器是否在 IPv4 地址上监听。若为 false,则可能监听 IPv6 地址。
listenAddressIPv4: string | null
IPv4 监听地址,仅当 forceIPv4 为 true 时使用。
listenAddressIPv6: string | null
IPv6 监听地址,仅当 forceIPv6 为 true 时使用。
方法
registerHandler(path: string, handler: (request: HttpRequest) => HttpResponse): void
为指定路径注册一个 HTTP 请求处理器。
参数:
示例:
registerFile(path: string, filePath: string): void
为指定路径注册一个静态文件响应。
参数:
示例:
当访问 /readme 时,服务器将返回该文件的内容。
registerFilesFromDirectory(path: string, directory: string, options?: { defaults?: string[] }): void
注册指定目录下的所有文件,使其可通过 HTTP 访问。
参数:
示例:
当访问 /static/ 时,会返回该目录下的默认首页文件。
registerWebsocket(path: string, handlers: WebSocketHandlers): void
注册 WebSocket 服务端处理程序,用于实时通信。
参数:
WebSocketHandlers 类型定义:
示例:
start(options?: { port?: number; forceIPv4?: boolean }): string | null
启动服务器。
参数:
返回值:
- 若启动失败,返回错误消息字符串。
- 若成功,返回
null。
示例:
stop(): void
停止服务器并释放资源。
示例:
类型定义
HttpServerState
WebSocketSession
表示一个 WebSocket 连接。
常用方法:
综合示例
以下示例展示了一个完整的 HTTP 与 WebSocket 服务器:
