name.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import axios from "axios"
  2. import { WebSocket } from "ws"
  3. const axiosInstance = axios.create({
  4. baseURL: "http://47.98.225.28/api",
  5. headers: {
  6. Authorization:
  7. "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InpvdW1hQWRtaW4iLCJzdWIiOjEsInJvbGVzIjpbImFkbWluIl0sImlhdCI6MTcyNjU4MTk1OH0.dQiHFYaDDa1qp4OpEHaH5SCZ9dafJ8uO9fAAc8HZgAo"
  8. }
  9. })
  10. const {
  11. data: { items: devices }
  12. } = await axiosInstance.post("/device", {
  13. page: { page: 1, limit: 1000 },
  14. search: { where: { online: true }, order: { name: "ASC" } }
  15. })
  16. const ws = new WebSocket("ws://121.40.132.44:6001")
  17. let xwDevices = []
  18. ws.onopen = () => {
  19. console.log("Connected to WebSocket")
  20. ws.send(
  21. JSON.stringify({
  22. action: "list"
  23. })
  24. )
  25. console.log("Requesting device list")
  26. setTimeout(() => {
  27. console.log("Updating device names")
  28. if (xwDevices.length > 0) {
  29. let i = 101
  30. for (let device of devices) {
  31. const xwDevice = xwDevices.find(
  32. xwDevice => xwDevice.onlySerial === device.id
  33. )
  34. if (xwDevice) {
  35. console.log(device.name)
  36. ws.send(
  37. JSON.stringify({
  38. action: "updateDevices",
  39. devices: xwDevice.serial,
  40. data: {
  41. sort: i++,
  42. name: device.name
  43. }
  44. })
  45. )
  46. }
  47. }
  48. } else {
  49. console.log("No device found")
  50. }
  51. }, 2000)
  52. }
  53. ws.onmessage = e => {
  54. const data = JSON.parse(e.data)
  55. if (data.code === 10000 && data.data instanceof Array) {
  56. xwDevices = data.data
  57. console.log("found " + xwDevices.length + " devices")
  58. }
  59. }