• mqtt使用方法


    1、mqtt一些配置(oss和c4代码里有)

    1. /**
    2. * 使用中的配置
    3. */
    4. import * as qiniu from 'qiniu-js'
    5. export const globalConfig = {
    6. qiniu: {
    7. getToken: '',
    8. qiniuUrl: "",
    9. qiniu_file: "",
    10. versionList: [],
    11. qiniuRegion:
    12. },
    13. mqtt: {
    14. connectTimeout: 40000,
    15. clientId: '',
    16. username: '',
    17. password: '',
    18. clean: true,
    19. url: "ws://io.st.com/mqtt",
    20. port: 8083
    21. },
    22. lang: "en"
    23. }
    24. /**
    25. * 国内配置
    26. */
    27. export const cn_config = {
    28. qiniu: {
    29. getToken: '',
    30. qiniuUrl: ",
    31. qiniu_file: "",
    32. versionList: [],
    33. qiniuRegion:
    34. },
    35. mqtt: {
    36. connectTimeout: 40000,
    37. clientId: '',
    38. username: '',
    39. password: '',
    40. clean: true,
    41. url: "ws://io.s.com/mqtt",
    42. port: 8083
    43. },
    44. lang: "zh"
    45. }

    2、使用mqtt接收信息的文件 ,即以上第一步的文件

    1. import {
    2. globalConfig
    3. } from '@/config/cnSgConfig'
    1. data() {
    2. return {
    3. mqtt: {
    4. config: globalConfig.mqtt
    5. },
    6. deviceId: "",
    7. cmdList: [],
    8. client2: '',
    9. gatewayId2: "",}}
    1. subscrib(topic) {
    2. // topic = 'aibox/trash-ai-edge-02/event'
    3. let that = this
    4. let mqtt = require('mqtt')
    5. let now = new Date()
    6. let number = now.getTime()
    7. let clientId = 'cid_' + number
    8. //开启mqtt链接
    9. this.client2 = mqtt.connect(this.mqtt.config.url, {
    10. port: this.mqtt.config.port,
    11. clientId: clientId,
    12. username: this.mqtt.config.username,
    13. password: this.mqtt.config.password,
    14. clean: false
    15. })
    16. //监听是否连接成功
    17. this.client2.on('connect', () => {
    18. console.log('连接成功!')
    19. })
    20. //订阅后端给你发的字段 在on里面接收
    21. that.client2.unsubscribe([topic])//先取消订阅,防止重复
    22. that.client2.subscribe([topic], (error, res) => {
    23. if (error) {
    24. console.log('订阅失败', error)
    25. }
    26. console.log('订阅成功', res)
    27. })
    28. //接收消息
    29. console.log('订阅topic是', topic)
    30. let messagearr = []//该数组要在接收数据前定义,不然容易每次只有最新的数据
    31. //监听订阅的消息,当有消息发过来,该函数便执行 ,回调函数中message则是收到的数据
    32. that.client2.on('message', (topic, message) => {
    33. // debugger
    34. let messageitem = {}
    35. messageitem = JSON.parse(message.toString())//收到的数据是一堆数字,要toString才能变成想要的样子,如果需要的是对象格式,记得JSON.parse
    36. console.log('接收到的信息是', messageitem, message.toString())
    37. //将收到的对象 处理message
    38. messageitem.time = formatDate(new Date(messageitem.time), 'yyyy-MM-dd HH:mm:ss')
    39. for (let i = 0; i < that.eventtypes.length; i++) {
    40. if (that.eventtypes[i].event == messageitem.event[0]) {
    41. messageitem.event = that.eventtypes[i].eventName
    42. }
    43. }
    44. messagearr.push(messageitem)//由于数据是实时的,每次发过来一个对象,需将他们放入数组中使用
    45. console.log('messageitem', messageitem, 'messagearr', messagearr)
    46. console.log('arr', messagearr)
    47. that.message = messagearr
    48. })
    49. },

  • 相关阅读:
    Scrapy-Center——spa7,spa10,spa11,spa12分析
    MD文本编辑工具推荐-matktext
    Dos攻击与DDos攻击
    A Philosophy of Software Design读书笔记——异常处理
    重置(resetting)CSS 和 标准化(normalizing)CSS 的区别是什么?你会选择哪种方式,为什么?
    Mybiosource丨Mybiosource重组病毒果蝇蛋白wntless方案
    vertx学习总结5
    idea注释代码三种方式
    Java 19新特性:虚拟线程(Virtual Threads )
    PSSecurityException
  • 原文地址:https://blog.csdn.net/qq_45530512/article/details/128066501