91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue項目中MQTT如何使用

發布時間:2021-07-21 11:22:09 來源:億速云 閱讀:656 作者:Leah 欄目:互聯網科技

本篇文章為大家展示了 Vue項目中MQTT如何使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

安裝 MQTT 客戶端庫

  1. 通過命令行安裝:

    可以使用 npm 或 yarn 命令,二者選一

  • npm install mqtt --save


  • yarn add mqtt


  1. 通過 CDN 引入

    <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>


  2. 下載到本地,然后使用相對路徑引入

    <script src="/your/path/to/mqtt.min.js"></script>


MQTT 的使用

連接 MQTT 服務器

本文將使用 EMQ X 提供的 免費公共 MQTT 服務器,該服務基于 EMQ X 的 MQTT 物聯網云平臺 創建。服務器接入信息如下:

  • Broker: broker.emqx.io

  • TCP Port: 1883

  • Websocket Port: 8083

連接關鍵代碼:

<script>
import mqtt from 'mqtt'

export default {
  data() {
    return {
      connection: {
        host: 'broker.emqx.io',
        port: 8083,
        endpoint: '/mqtt',
        clean: true, // 保留會話
        connectTimeout: 4000, // 超時時間
        reconnectPeriod: 4000, // 重連時間間隔
        // 認證信息
        clientId: 'mqttjs_3be2c321',
        username: 'emqx_test',
        password: 'emqx_test',
      },
      subscription: {
        topic: 'topic/mqttx',
        qos: 0,
      },
      publish: {
        topic: 'topic/browser',
        qos: 0,
        payload: '{ "msg": "Hello, I am browser." }',
      },
      receiveNews: '',
      qosList: [
        { label: 0, value: 0 },
        { label: 1, value: 1 },
        { label: 2, value: 2 },
      ],
      client: {
        connected: false,
      },
      subscribeSuccess: false,
    }
  },

  methods: {
    // 創建連接
    createConnection() {
      // 連接字符串, 通過協議指定使用的連接方式
      // ws 未加密 WebSocket 連接
      // wss 加密 WebSocket 連接
      // mqtt 未加密 TCP 連接
      // mqtts 加密 TCP 連接
      // wxs 微信小程序連接
      // alis 支付寶小程序連接
      const { host, port, endpoint, ...options } = this.connection
      const connectUrl = `ws://${host}:${port}${endpoint}`
      try {
        this.client = mqtt.connect(connectUrl, options)
      } catch (error) {
        console.log('mqtt.connect error', error)
      }
      this.client.on('connect', () => {
        console.log('Connection succeeded!')
      })
      this.client.on('error', error => {
        console.log('Connection failed', error)?
      })
      this.client.on('message', (topic, message) => {
        this.receiveNews = this.receiveNews.concat(message)
        console.log(`Received message ${message} from topic ${topic}`)
      })
    },
  }
}
</script>

訂閱主題

doSubscribe() {
  const { topic, qos } = this.subscription
  this.client.subscribe(topic, qos, (error, res) => {
    if (error) {
      console.log('Subscribe to topics error', error)
      return
    }
    this.subscribeSuccess = true
    console.log('Subscribe to topics res', res)
 	})
},

取消訂閱

doUnSubscribe() {
  const { topic } = this.subscription
  this.client.unsubscribe(topic, error => {
    if (error) {
      console.log('Unsubscribe error', error)
    }
  })
}

消息發布

doPublish() {
  const { topic, qos, payload } = this.publication
  this.client.publish(topic, payload, qos, error => {
    if (error) {
      console.log('Publish error', error)
    }
  })
}

斷開連接

destroyConnection() {
  if (this.client.connected) {
    try {
      this.client.end()
      this.client = {
        connected: false,
      }
      console.log('Successfully disconnected!')
    } catch (error) {
      console.log('Disconnect failed', error.toString())
    }
  }
}

上述內容就是 Vue項目中MQTT如何使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潜江市| 龙川县| 晋江市| 朝阳区| 黎平县| 静乐县| 商南县| 同仁县| 澄城县| 灵山县| 青海省| 重庆市| 延庆县| 丹巴县| 彭山县| 霍邱县| 大新县| 互助| 华坪县| 邵东县| 赤城县| 五家渠市| 乐清市| 岳池县| 隆安县| 霍城县| 启东市| 文登市| 常德市| 上饶县| 县级市| 晋州市| 舟曲县| 治县。| 闽清县| 开化县| 修文县| 舞钢市| 西青区| 昭通市| 屏南县|