import dgram from 'dgram'; import { recordServerStatus } from '../model/serverStatus'; import { logger } from '../utils/logger'; export function initUdpServer(port: number) { const server = dgram.createSocket('udp4'); server.on('error', (err) => { logger.info(`Init error:\n${err.stack}`); server.close(); }); server.on('message', (msg, rinfo) => { try { const raw = String(msg); const json = JSON.parse(String(msg)); logger.info('[UDP] recevice tianji report:', raw, 'info', rinfo); recordServerStatus(json); } catch (err) {} }); server.on('listening', () => { const address = server.address(); logger.info(`UDP Server is listening: ${address.address}:${address.port}`); }); server.bind(port); }