diff --git a/src/composables/utils/useMqtt.ts b/src/composables/utils/useMqtt.ts index 50a161b..f9f0bcd 100644 --- a/src/composables/utils/useMqtt.ts +++ b/src/composables/utils/useMqtt.ts @@ -14,6 +14,11 @@ export default function useMqtt() { PublicMqtt.value.link() getMessage(callback) } + + const publish = (topic: string, message: string) => { + PublicMqtt.value?.publish(topic, message) + } + const getMessage = (callback: OnMessageCallback) => { // PublicMqtt.value?.client.on('message', callback); PublicMqtt.value?.get(callback) @@ -27,5 +32,6 @@ export default function useMqtt() { return { startMqtt, + publish, } } diff --git a/src/pages/admin/data-analysis/DataAnalysis.vue b/src/pages/admin/data-analysis/DataAnalysis.vue index 65bac07..40c30ac 100644 --- a/src/pages/admin/data-analysis/DataAnalysis.vue +++ b/src/pages/admin/data-analysis/DataAnalysis.vue @@ -16,12 +16,15 @@ ChartContainer, }, setup() { - const { startMqtt } = useMqtt() + const { startMqtt, publish } = useMqtt() + const controllerID = 'b8:27:eb:18:f8:cc' - // startMqtt('b8:27:eb:18:f8:cc/+/#', (topic: string, message: ArrayBuffer) => { - // const msg = JSON.parse(message.toString()) - // console.log('1', topic, msg) - // }) + startMqtt(`${controllerID}/+/#`, (topic: string, message: ArrayBuffer) => { + const msg = JSON.parse(message.toString()) + console.log('1', topic, msg) + }) + + publish(`${controllerID}_user`, JSON.stringify({ header: 'get_device_info_all/0' })) return {} }, diff --git a/src/utils/mqtt.ts b/src/utils/mqtt.ts index f2f2293..33e15e9 100644 --- a/src/utils/mqtt.ts +++ b/src/utils/mqtt.ts @@ -14,7 +14,7 @@ class MQTT { init() { const options = { clean: true, - clientId: '111', + clientId: 'mqttjs_' + Math.random().toString(16).substring(2, 8), // password: '111', // username: '1111', connectTimeout: 4000, @@ -49,6 +49,12 @@ class MQTT { }) }) } + + // publish + publish(topic: string, message: string) { + this.client.publish(topic, message) + } + // message callback get(callback: OnMessageCallback) { this.client.on('message', callback)