server.js 868 B

1234567891011121314151617181920212223242526272829303132
  1. const { Server } = require("socket.io")
  2. const db = require('node-little-db')
  3. const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
  4. const io = new Server({
  5. cors: {
  6. origin: ["*"]
  7. }
  8. });
  9. // 日志配置
  10. const log4js = require("log4js");
  11. log4js.configure({
  12. appenders: { socket: { type: "file", filename: "./socket.log" } },
  13. categories: { default: { appenders: ["socket"], level: "debug" } }
  14. });
  15. const logger = log4js.getLogger('socket');
  16. // 中间件 = 验证
  17. io.use((socket, next) => {
  18. const { MAC, NAME } = socket.handshake.auth;
  19. // 新建|查询数据
  20. const config = db.create('config')
  21. if (config[NAME] === MAC) {
  22. logger.debug(NAME + '验证成功' + MAC);
  23. next()
  24. } else {
  25. logger.debug(NAME + '验证错误' + MAC);
  26. next(new Error('Mac error'))
  27. }
  28. })
  29. logger.info('验证服务启动:45697')
  30. io.listen(45697)