美文网首页
客户端与MQTT服务端通信 --- vue.js

客户端与MQTT服务端通信 --- vue.js

作者: 无疆wj | 来源:发表于2019-05-15 13:52 被阅读0次

1.在index.html中引入mqttws31.js

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script src="./static/tools//mqttws31.js"></script> <!-- 引入mqttws31.js  -->
    <title>********</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

2.封装mqtt通信组件

<template>
  <div></div>
</template>

<script>
export default {
  name: 'mqttws',
  data () {
    return {
      client: null
    }
  },
  methods: {
    // 建立新连接
    buildConnect () {
      let clientParams = {
        hostname: '',
        port: 8083,
        clientId:'',
        userName: '',
        password: ''
      }

      // eslint-disable-next-line
      this.client = new Paho.MQTT.Client(
        clientParams.hostname,
        clientParams.port,
        clientParams.clientId
      )

      // 建立客户端实例
      let options = {
        invocationContext: {
          host: clientParams.hostname,
          port: clientParams.port,
          path: this.client.path,
          clientId: clientParams.clientId
        },
        timeout: 5,
        keepAliveInterval: 50,
        cleanSession: true,
        useSSL: false,
        userName: clientParams.userName,
        password: clientParams.password,
        onSuccess: this.clientSuccess,
        onFailure: this.clientFailure
      }

      this.client.connect(options) // 连接服务器并注册连接成功处理事件
      this.client.onConnectionLost = this.onConnectionLost // 注册连接断开处理事件
      this.client.onMessageArrived = this.onMessageArrived // 注册消息接收处理事件
    },
    // mqtt连接成功
    clientSuccess () {
      console.log('连接成功')
      this.$emit('messageArrived', '连接成功')
      this.client.subscribe(`machine/h5`) // 订阅主题
    },
    // mqtt连接失败
    clientFailure (e) {
      console.log('连接失败')
      console.log(e)
      this.$emit('messageArrived', '连接失败')
    },
    // 连接丢失
    onConnectionLost (responseObject) {
      if (responseObject.errorCode === 0) {
        console.log('连接已断开')
      } else {
        console.log('异常:连接丢失' + responseObject.errorMessage)
      }
    },
    // 接收消息事件
    onMessageArrived (message) {
      console.log('收到消息:' + message.payloadString)
      this.$emit('messageArrived', JSON.parse(message.payloadString))
    },
    // 断开mqtt连接
    disconnect () {
      this.client.disconnect()
    }
  }
}
</script>

<style>
</style>

  1. 在需要通信的页面引入mqtt组件
<template>
  <div>
    <!-- mqtt通信组件 -->
    <Mqtt ref="mqtt" @messageArrived="onMessageArrived"></Mqtt>
  </div>
</template>
<script>
import Mqtt from '@/components/Mqtt'
export default {
  components: {
    Mqtt
  },
  data () {
    return {
    }
  },
  mounted () {
    this.$refs.mqtt.buildConnect() // 建立mqtt通信
  },
  beforeDestroy () {
    this.$refs.mqtt.disconnect() // 关闭页面断开mqtt连接
  },
  methods: {
    // 接收mqtt消息
    onMessageArrived (msg) {
      console.log(msg)
   }
  }
}
</script>

<style>
</style>

附:
网址:http://www.eclipse.org/paho/downloads.php
然后去github 下载 mqttws31.js
地址:https://github.com/eclipse/paho.mqtt.javascript

相关文章

  • 客户端与MQTT服务端通信 --- vue.js

    1.在index.html中引入mqttws31.js 2.封装mqtt通信组件 在需要通信的页面引入mqtt组件...

  • HTTP协议学习笔记(2)

    客户端与服务端的通信与TCP连接 1. 客户端与服务端的通信过程 当客户端想要跟服务端进行信息交互时,过程如下: ...

  • vue与服务端通信—vue-resource

    Vue.js本身没有提供与服务端通信的借口,但是通过插件的形式实现了基于Ajax、Jsonp等技术的服务端通信。 ...

  • 【MQTT】客户端

    Mqtt客户端 首先我们得需要mqtt3.jar包mqtt3下载连接 服务端发来的消息

  • http接口幂等性

    客户端与服务端进行两次通信来check 1、客户端请求服务端获取token 2、客户端用token提交数据给服务端...

  • 2020-05-04 MQTT服务器和订阅发布客户端测试

    MQTT服务端和客户端测试结果 1.服务端启动: 2.订阅客户端启动:订阅客户端发送请求步骤:2.1首先向服务端发...

  • WebSocket:即时通信

    遵循TCP协议,客户端与服务端全双工通信 之前服务端是不能向客户端发数据,必须客户端轮询,多次向服务端发送请求,服...

  • 2019-04-05

    网络编程进阶整理 案例一:实现客户端与服务端的交互 频繁的客户端与服务端的通信 需求: 1.客户端通过键盘录入发送...

  • TCP/UDP套接字通信

    一,基于TCP套接字通信 服务端 客户端 二,基于UDP套接字通信 服务端 客户端 - 执行如下(服务端无返回信息...

  • 写一个redis set命令的客户端

    客户端与服务端交互,需要遵从协议标准,否则交互无从谈起。比如http客户端与http服务端通信,需要遵从h...

网友评论

      本文标题:客户端与MQTT服务端通信 --- vue.js

      本文链接:https://www.haomeiwen.com/subject/badpaqtx.html