博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在VUE中利用MQTT协议实现即时通讯
阅读量:7231 次
发布时间:2019-06-29

本文共 1420 字,大约阅读时间需要 4 分钟。

前言

建议先阅读:

以前尝试在vue中用上mqtt,了解到mqtt实质上是基于websocket进行数据通信,所以上文中在node下实现的服务端此时不能满足需求

代码

服务端: server.js

let http     = require('http'), httpServer = http.createServer(), mosca = require('mosca')let settings = {  port: 5112,  persistence:{      factory: mosca.persistence.Mongo,    url: "mongodb://localhost:27017/mosca"  }}let server = new mosca.Server(settings)server.attachHttpServer(httpServer)server.on('published', function(packet, client) {  console.log('Published',  packet.payload.toString());})httpServer.listen(3003)server.on('ready', function(){  console.log('server is running at port 3003');  })

服务端mosca的实例化并没有改动

而是将其为websocket形式进行适配

客户端: mqtt.js

let mqtt = require('mqtt')let client = {}export default {  launch(id, callback) {    client = mqtt('mqtt://ip', {      port: 3003,      clientId: id,      clean: false    })    client.on('message', (topic, message) => {      callback(topic, message)    })  },  end() {    client.end()  },  subscribe(topic) {    client.subscribe(topic, {qos: 1})    console.log('subscribe:', topic)  },  publish(topic, message) {    client.publish(topic, JSON.stringify(message), {qos: 1})  }}

独立地对mqtt进行简单地封装,方便调用

值得注意的是此时的协议头仍为mqtt,
但mqtt源码会以ws形式进行通信

main.js:

再把mqtt绑到vue原型链上

import mqtt from './api/mqtt'Vue.prototype.$mqtt = mqtt

现在便可在vue环境中对mqtt进行调用

this.$mqtt.launch(this.user._id, (topic, source) => {    console.log('message: ', JSON.parse(source.toString()))})

转载请注明出处 ; )

你可能感兴趣的文章
热修复和插件化
查看>>
React & Redux 实现注册登录认证系统(31 个视频)
查看>>
Android小知识-如何正确的选择HashMap、LinkedHashMap和ArrayMap
查看>>
数据结构(一)ArrayList源码分析
查看>>
参考KOA,5步手写一款粗糙的web框架
查看>>
React Native通信原理源码分析一
查看>>
Shader 动画
查看>>
Android 多进程通信之几个基本问题
查看>>
在Windows上如何安装和彻底卸载Adobe Flash Player教程
查看>>
五大JAVA Web框架的优缺点对比Spring MVC领先
查看>>
iOS开发技巧-UIImageView 的contentMode属性说明和使用
查看>>
Vue-Router源码分析之index.js
查看>>
Flutter项目之app升级方案
查看>>
dispatch_async和dispatch_sync的区别
查看>>
[翻译] 调试 Rxjs(一):工具
查看>>
前端工程师面试工作分析
查看>>
使用puppeteer爬取网站,抓出404无效链接
查看>>
Android设计模式探讨 Builder模式
查看>>
《讲个故事》GitHub与新人类
查看>>
Kotlin知识点总结与初写时的一些建议
查看>>