mqtt.service.ts 848 B

123456789101112131415161718192021222324252627282930313233
  1. import { EventCallback } from '@tauri-apps/api/event'
  2. import {
  3. connect, disconnect, publish, listen, Payload
  4. } from '@kuyoonjo/tauri-plugin-mqtt'
  5. import { injectable, Service } from './service'
  6. /**
  7. * MQTT服务
  8. */
  9. @injectable
  10. export default class MqttService extends Service {
  11. private mqtt_client_id: string = 'mqtt_contrl_id'
  12. public mqtt_channel: string = ''
  13. async connect(url: string, name: string, room: string) {
  14. const newUrl = `${url}?username=${room}&password=${name}`
  15. return await connect(this.mqtt_client_id, newUrl)
  16. }
  17. async disconnect() {
  18. await disconnect(this.mqtt_client_id)
  19. }
  20. async publish(payload: string) {
  21. if (!this.mqtt_channel) return
  22. await publish(this.mqtt_client_id, this.mqtt_channel, 0, false, payload)
  23. }
  24. // (callback: EventCallback<Payload>) {
  25. // listen(callback)
  26. // }
  27. }