app.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const fastify = require('fastify')
  2. const config = require('./config.js')
  3. const { initDB } = require('./src/database.js')
  4. const routes = require('./src/routes.js')
  5. const { createServer } = require('net')
  6. const { broker } = require('./src/mqtt.js')
  7. // 初始化Fastify(移除WebSocket相关代码)
  8. const app = fastify({
  9. logger: true,
  10. maxParamLength: 256, // 限制路径参数长度
  11. connectionTimeout: 5000,// TCP连接超时
  12. keepAliveTimeout: 5000, // 保持连接时间
  13. bodyLimit: 1048576 // 请求体限制1MB
  14. })
  15. const mqttServer = createServer(broker.handle)
  16. // 初始化数据库
  17. await initDB()
  18. // 仅注册API路由
  19. app.register(routes, { prefix: '/api' })
  20. // 启动HTTP服务
  21. app.listen(config.http, (err) => {
  22. if (err) {
  23. app.log.error(err)
  24. process.exit(1)
  25. }
  26. })
  27. // 启动纯TCP版MQTT服务
  28. mqttServer.listen(config.http.port, config.http.host, () => {
  29. app.log.info(`MQTT TCP服务已启动: tcp://localhost:${config.mqtt.tcp_port}`)
  30. }).on('error', () => {
  31. app.log.error(err)
  32. process.exit(1)
  33. })