跳到主要内容

dxHttpServer

1. 概述

此模块是 dejaOS 官方系统模块库的一部分,用于启动 HTTP Web 服务,监听端口,并允许客户端通过 HTTP 协议访问设备。它通常用于通过局域网内的计算机浏览器控制设备,前提是已知设备的 IP 地址。 包含常见的 HTTP Web 服务功能:

  • 静态 Web 服务
  • 服务监听和启动
  • 路由注册
  • 支持文件上传,Content-Type 应为 'application/octet-stream' 或 'text/plain' 等,不支持 'multipart/form-data'
  • 支持文件下载
  • 不支持多线程,所有函数应在单线程中运行。对于跨线程通信,使用 dxEventbus 传递数据

2. 文件

  • dxHttpServer.js
  • libvbar-m-dxhttpcserver.so(嵌入式 mongoose)
  • 确保这 2 个文件包含在项目根目录下的 dxmodules 子目录中

3. 依赖项

4. 兼容设备

兼容所有运行 dejaOS v2.0+ 的设备

5. 使用方法

初始化

  • httpserver.init()
  • httpserver.deinit()

路由注册

  • httpserver.route(path, callback)

响应对象

  • res.send(body, headers)
  • res.sendFile(path)

请求对象

  • req.methodreq.urlreq.queryreq.headersreq.body
  • req.saveFile(path)

启动服务

  • httpserver.listen(port)
  • setInterval(() => httpserver.loop(), 20)

静态服务

  • httpserver.serveStatic(pathPrefix, directory)

更详细的使用方法,请参考演示:demo/test_server.js,demo/web 截图如下:192.168.50.212 是设备 IP

6. 相关模块

与另一个模块 dxWebserver 相关,功能相似。dxHttpServer 是 dxWebserver 的替代品,dxWebserver 正在逐渐被弃用

7. 示例

源代码