IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> MQtt+vue,完成及时通讯 -> 正文阅读

[JavaScript知识库]MQtt+vue,完成及时通讯

1、下载mqtt.js

npm install mqtt --save

2、配置mqtt账号、密码、请求链接
//MQtt.js
export const MQTTIP = "wss:xxxxxxxxxxxx";   //聊天接口
export const USERNAME = "admin";     //账号
export const PASSWORD = "admin";		//密码
3、在需要的页面引入
//xxx.vue
import mqtt from "mqtt";
import { MQTTIP,USERNAME, PASSWORD } from "../../utils/MQtt";
function S() {
  return (((1 + Math.random()) * 0x10000) | 0).toString(32).substring(1);
}
let MathRandom =
  S() + S() + "-" + S() + "-" + S() + "-" + S() + "-" + S() + S() + S();
let MqttUserId = "clientid-" + MathRandom;

var client;
const options = {
  connectTimeout: 40000,  //链接超时时间
  clientId: MqttUserId,      //这个id最好的是随机的
  username: USERNAME,  //账号
  password: PASSWORD,  //密码
  clean: true,    
  keepalive: 24000  //心跳
};
client = mqtt.connect(MQTTIP, options);
export default {
 data() {
    return {
      mtopic: "xxxxxxx",   //订阅的主题
  },
   created() {
    this.myMqtt();
  },
  methods: {
    // 获取当前消息
    myMqtt() {
      // 连接mqtt
      client.on("connect", e => {
        console.log("连接成功");
        client.subscribe(this.mtopic, err => {
          if (!err) {
            console.log("订阅成功:" + this.mtopic);
          }
        });
      });
      // 接收推送消息
      client.on("message", (topic, message) => {
      //这里会打印三次,导致下面调用接口的时候回调三次,做了一个处理,反正问题解决了,不知道是不是自己的方法用错了
        for (var i = 0; i < 1; i++) {
          console.log("接收推送信息:", message.toString(), "主题", topic); 
        }
      });
      // 断开发起重连
      client.on("reconnect", error => {
        console.log("正在重连...", error);
      });
      // 链接异常处理
      client.on("error", error => {
        console.log("连接失败...", error);
      });
    },
	}
	//发送消息
	 handleclick: function() {
      this.client.publish(this.mtopic, xxxx(这里是回复的消息));
    }
}

下面是完成的截图(其中需要聊天记录接口以及聊天列表的list接口,然后做两次监听,一个监听列表一个监听当前聊天窗口)

在这里插入图片描述

以上。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 23:56:02  更:2021-07-24 23:56:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 9:31:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码