当前位置: 首页 > news >正文

使用javascript连接mqtt协议(自动重连问题)

因为之前是在rabbitmq的插件“RabbitMQ Web MQTT plugin ”中看到使用了mqttws31.js的实例,由于对mqttws31不了解,网上下载了连接成功,但断开后不能自动重连。最后去官方看下了下iusue(https://github.com/eclipse/paho.mqtt.javascript/issues/48),提到:

1.定时器自动重连
2.通过reconnent参数实现自动重连。

client.connect(
            {
                cleanSession : false, 
                onSuccess : onConnectSuccess, 
                onFailure : onFailedConnect, 
                keepAliveInterval: 30, 
                reconnect : true,         // Enable automatic reconnect
                reconnectInterval: 10     // Reconnect attempt interval : 10 seconds
            }
        );

采用第二种方式的时候报错了,查看了mqttws31.js源码确实不太正确,于是去github上找了下,才发现有一个“automatic-reconnect”分支:
https://github.com/eclipse/paho.mqtt.javascript/blob/automatic-reconnect/src/mqttws31.js

connectOptions = connectOptions || {} ;
            validate(connectOptions,  {timeout:"number",
                                       userName:"string",
                                       password:"string",
                                       willMessage:"object",
                                       keepAliveInterval:"number",
                                       cleanSession:"boolean",
                                       useSSL:"boolean",
                                       invocationContext:"object",
                                       onSuccess:"function",
                                       onFailure:"function",
                                       hosts:"object",
                                       ports:"object",
                                       reconnect:"boolean",
mqttVersion:"number"});

转载于:https://www.cnblogs.com/ikodota/p/10184617.html

相关文章:

  • serde
  • 设计模式的学习(10)策略模式
  • RabbitMQ 发布订阅
  • json对象 按key排序
  • 蜂鸟运单系统架构及实现
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • PythonR量化 金融之路
  • 第二十章:异步和文件I/O.(二十二)
  • 2018年度总结
  • 第二十章:异步和文件I/O.(二十三)
  • 使用.Net Core+IView+Vue集成上传图片功能
  • 三分钟教你同步 Visual Studio Code 设置
  • 《快速阅读术》
  • 容器中 Java 应用程序的内存和 CPU 如何分配?看这一篇就够了!
  • 北斗三号系列核心芯片
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • bootstrap创建登录注册页面
  • export和import的用法总结
  • IOS评论框不贴底(ios12新bug)
  • JavaScript类型识别
  • maya建模与骨骼动画快速实现人工鱼
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • SSH 免密登录
  • 服务器从安装到部署全过程(二)
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 设计模式走一遍---观察者模式
  • 深度解析利用ES6进行Promise封装总结
  • 深入 Nginx 之配置篇
  • 写代码的正确姿势
  • 一道闭包题引发的思考
  • 原生Ajax
  • 第二十章:异步和文件I/O.(二十三)
  • ​Python 3 新特性:类型注解
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $GOPATH/go.mod exists but should not goland
  • (3)STL算法之搜索
  • (C语言)字符分类函数
  • (function(){})()的分步解析
  • (libusb) usb口自动刷新
  • (二)正点原子I.MX6ULL u-boot移植
  • (四)Controller接口控制器详解(三)
  • (新)网络工程师考点串讲与真题详解
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)基于IDEA的JAVA基础10
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)shell调试方法
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET gRPC 和RESTful简单对比
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 获取url的方法
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)