index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const mqtt = require('mqtt');
  2. const mysql = require('mysql2');
  3. const connection = mysql.createConnection({
  4. host: '10.186.132.64',
  5. port: '3306',
  6. user: 'ecology',
  7. password: 'k*SE^kYHnr6mgQcixCW7xoMJ',
  8. database: 'e10_common'
  9. });
  10. // 连接到数据库
  11. connection.connect((err) => {
  12. if (err) {
  13. console.error('数据库连接失败: ' + err.stack);
  14. return;
  15. }
  16. console.log('已连接到数据库,连接ID: ' + connection.threadId);
  17. });
  18. let mqttClient;
  19. // 初始化MQTT客户端
  20. mqttClient = mqtt.connect('mqtt://10.71.99.211:1883', {
  21. clientId: 'electron-mqtt-client',
  22. username: 'anning',
  23. password: '123456',
  24. clean: true
  25. });
  26. mqttClient.on('connect', () => {
  27. console.log('MQTT connected');
  28. // 可以在这里订阅主题
  29. mqttClient.subscribe('/location/ZNAF_TOPIC_10034128/position', (err) => {
  30. if (!err) {
  31. console.log('Subscribed to some/topic');
  32. }
  33. });
  34. });
  35. mqttClient.on('message', (topic, msg) => { // 处理接收到的消息
  36. let data = JSON.parse(msg.toString())
  37. const sql = `INSERT INTO uf_jcrydw (
  38. cardId,
  39. layerId,
  40. x,
  41. y,
  42. move,
  43. lowPower,
  44. power,
  45. time,
  46. supplier,
  47. longitude,
  48. latitude,
  49. layernum,
  50. uniqueId,
  51. entId
  52. ) VALUES (
  53. "${data.cardId}",
  54. "${data.layerId}",
  55. ${data.x},
  56. ${data.y},
  57. "${data.move}",
  58. ${data.lowPower},
  59. "${data.power}",
  60. "${data.time}",
  61. "${data.supplier}",
  62. ${data.longitude},
  63. ${data.latitude},
  64. "${data.layernum}",
  65. "${data.uniqueId}",
  66. "${data.entId}"
  67. )`;
  68. connection.execute(sql, (err, results, fields) => {
  69. console.log(err)
  70. });
  71. });
  72. mqttClient.on('error', (err) => {
  73. console.error('error:', err);
  74. });