LinkIT One使用paho mqtt连接服务器失败 5C

背景描述:
使用LinkIT One基于paho的mqtt客户端,当代码执行到rc=client.connect(data);,超时然后返回rc=-1。
测试连接的服务端包括IBM Watson、中移OneNet还有自己搭建的mosquitto,都是一样的错误。查了一下paho的实现代码,把MQTTClient.h中的connect实现改了一下就connect成功了,但subscribe又超时并返回错误了(如下所示)。

在网上查到了和我类似的错误,貌似LinkIT One并不能使用paho的mqtt。但将mqtt客户端换成pubsub后却能够正常工作。
下面是我的测试代码(mqtt服务器是本地局域网的mosquitto)

 #include <LWiFi.h>
#include <LWiFiClient.h>
#include <IPStack.h>
#include <Countdown.h>
#include <MQTTClient.h>

#define WIFI_AP "SSID"
#define WIFI_PASSWORD "PASSWD"
#define WIFI_AUTH LWIFI_WPA

int port = 1883;
char servername[]="10.214.149.119";
char clientName[] = "myaccount";
char topicName[] = "@tp";
char userName[] = "myaccount";
char password[] = "12345";

LWiFiClient tcpClient;
IPStack ipstack(tcpClient);
MQTT::Client<IPStack, Countdown, 200> client = MQTT::Client<IPStack, Countdown, 200>(ipstack);

void messageArrived(MQTT::MessageData& md){
  MQTT::Message &message = md.message;
  char res[100];
  int len = message.payloadlen;
  strncpy(res, (char*)message.payload, len);
  res[len] = '\0';
  Serial.println(res);
}

void setup(){
  Serial.begin(9600);
  while(!Serial.available());
  InitWiFi();
  if (!client.isConnected())
    reconnect();
  int rc = client.subscribe(topicName, MQTT::QOS0, messageArrived);
  if (rc != 0)
    Serial.println(String("rc from MQTT subscribe is ")+rc);
  else
    Serial.println(String("rc from MQTT subscribe is ")+rc);
}

void loop(){
  Serial.println("loop");
  client.yield(100);
  delay(2000);
}

void InitWiFi(){
  LWiFi.begin();
  // Keep retrying until connected to AP
  Serial.println("Connecting to AP");
  while (0 == LWiFi.connect(WIFI_AP, LWiFiLoginInfo(WIFI_AUTH, WIFI_PASSWORD)))
  {
    Serial.println("Retry connect AP ... ");
    delay(1000);
  }
  Serial.println("Connected to AP");
}

void reconnect() {
  // Loop until we're reconnected
  if(!client.isConnected()) {
    int rc = ipstack.connect(servername, port);
    if (rc == 1){
      Serial.println("IPStack Success");  
    }else{
      Serial.println("IPStack Failed");
    }
    Serial.print("Connecting to IOT platform ...");
    MQTTPacket_connectData data = MQTTPacket_connectData_initializer;       
    data.MQTTVersion = 4;
    data.clientID.cstring = clientName;
    data.username.cstring = userName;
    data.password.cstring = password;
    rc = client.connect(data);
    if (rc == 0) {
      Serial.println( "[DONE]" );
    } else {
      Serial.println( "[FAILED]");
      delay(5000);
    }
  }
}

我的问题是:
有没有大神使用LinkIT One基于paho的mqtt实现了客户端,可以正常pub/sub话题,测试的mqtt代理可以是mosquitto或IBM Watson或中移OneNet?允许修改paho或LWiFiClient的源码?(我只要基于paho的实现)

提示:
1.通过之前在Arduino UNO、BeagleBone Black、树莓派2的实验感觉各种mqtt的代理基本都一样的,能在mosquitto上测试通过的基本都能在IBM Watson或OneNet上测试通过;
2.LinkIt One用pubsub测试没有问题,这说明LWiFiClient很大概率是没问题的,估计要修改paho的实现代码

1个回答

// 创建一个jsMQTT客户端实例,clientId是唯一标识符,地址和端口号为服务的地址和端口 client = new Paho.MQTT.Client(locatio

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MQTT 测试工具 eclipse paho
MQTT 测试工具 org.eclipse.paho.ui.app-1.1.1-win32.win32.x86_64 , 可连中国移动 oneNet
paho mqtt MQ
The Eclipse Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for the Internet of Things (IoT).
解读Paho MQTT源码
这个两天要重点突破一下MQTT的东西, 找到了它的源码,解读一下,作为下一步优化的路标。 Paho是基于socket开做的,本质上还是维持一个长socket。 以TCP socket为例:(org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule) 发起连接 SocketAddress sockaddr = new InetS
paho mqtt资源地址
之前找过jar包的,有点隐蔽,做点记录, 文档: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html 源码: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/ jar: https://repo.eclipse.org/conten
MQTT 客户端paho
之前为了让调试MQTT 安装了几个版本的paho 和JDK,结果paho 总是不能运行,查了很多资料结果发现 paho和JDK的版本不配套,特意上传配套的paho和java开发环境jdk
java后台异步推送消息至服务器(mqtt paho)
web创建消息推送保存至数据库后,后台从数据库获取数据并异步推送;即每次获取一条数据推送,推送成功后再获取第二条数据推送,依此类推,当没有数据时处于睡眠状态。我该怎么实现。
LinkIt One开发板出现问题
LinkIt One开发板出现问题 本人使用Arduino IDE 编程,在需要观察串口监视器的数据过程中,上传程序出现打开com端出错。 错误信息如下: C:\Arduino IDE\Arduino&amp;gt;“C:\Users\10948\AppData\Local\Arduino15\packages\LinkIt\tools\linkit_tools\1.1.23\PushTool.exe”...
MQTT 连接建立流程及 paho mqtt 源码分析
文章转自:https://www.whqft.com/tech/ba0fbbea4fbe52ab5c48a1a3680b38c0.html 目录 目录 前言 连接流程 连接配置 源码分析 总结 前言 在上篇分析了mqtt的基础后,接下来就分析下mqtt协议连接建立流程。在阅读本文之前,需要大家去了解一下Mqtt报文格式,还没有看的同学可以参考下此文:https://blog.csdn.net/l...
使用MQTTnet连接Mqtt服务器
https://blog.csdn.net/weixin_42930928/article/details/82383297 上篇文章介绍了mqttnet的内容,并使用mqttnet搭建了一个mqtt服务器。本篇文章将继续使用mqttnet做一个客户端,用于连接mqtt服务器。 client的界面部署入下图所示, 1、单个mqtt client,可是使用订阅主题和发布主题, 2、创建多个m...
mqtt服务器apollo的搭建和测试工具paho的使用
前言 MQTT协议是IBM开发的一个即时通讯协议; 基于发布/订阅的消息协议,近些年来被广泛应用于能源、电力…等硬件性能低下的远程设备,此外国内很多企业使用MQTT作为android手机客户端与服务器推送消息的协议,主要应用在物联网、小型设备、移动应用等方面。 新公司的项目有用mqtt协议,虽然这数据采集这方面的事情与我无关,但是又必要学习一下。 官网地址:http://mqtt.org/ 环境和...
LinkIt One学习笔记--Lwifi模块
LWIFI学习 https://docs.labs.mediatek.com/resource/linkit-one/en/tutorials/using-http-with-the-linkit-one-development-board 官网链接 这个里面可以 Post a JSON object to a server and receive a response 本人是小白,以下程序又不...
MQTT 测试工具 eclipse paho 32位
MQTT 测试工具 32 位 org.eclipse.paho.ui.app-1.1.1-win32.win32.x86
Android paho Mqtt物联网网络框架
先上地址 : 在module下的build.gradle文件内的dependencies里面添加下面远程库,Androidstudio3.0以及以上的要用 implementation代替compile compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2' 项目结构下的build.gradle要添加maven...
linkit one学习笔记-开发板简介
LinkIt ONE开发板简介LinkIt One开发板是由矽递科技和联发科合作推出的一款开源硬件。LinkIt One基于联发科MT2502A ASoC处理器,集成了高性能的Wi-Fi和GPSx芯片。
LinkIt ONE 开发指南 中文版v1.3
LinkIt ONE 开发指南 中文版v1_3
esp8266连接mqtt服务器
1.MQTT ESP8266库 菜单“项目”-“加载库”-“管理库”,搜索安装“PubSubClient” PubSubClient有一些示例可以打开mqtt_esp8266看下 2.MQTT接发消息体验 这里做两个示例1. NodeMCU发布消息:光照强度传感器测得环境光照强度发布到服务器,手机订阅该Topic接收光强信息 #include &lt;ESP8266WiFi.h&g...
java 连接mqtt服务器
这是我开始实习工作的第一个程序,印象还是非常深刻的,师傅需要我写一个针对他们硬件产品的测试代码,需要连接mqtt服务器. package org.mqtt.client; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; i
Java 连接 MQTT 服务器
可用方案 方案 描述 GitHub链接 mqtt-client 由 Red Hat 子公司 FuseSource 开发 mqtt-client paho.mqtt 由独立的非营利性公司 Eclipse Foundation 开发 eclipse / paho.mqtt.java ...
Android连接MQTT服务失败
Android连接MQTT服务失败:WARN | Transport Connection to: tcp://109.118.56.144:53089 failed: java.io.EOFExcepion。请教怎么解决?
MQTT猫用于连接MQTT服务器
MQTT猫用于连接MQTT服务器,作为连接服务器的一个可用客户端
paho连接前端界面的MQTT消息的api
// 创建一个jsMQTT客户端实例,clientId是唯一标识符,地址和端口号为服务的地址和端口 client = new Paho.MQTT.Client(location.hostname, Number(location.port), "clientId"); // 客户端连接丢失的处理 client.onConnectionLost = onConnectionLost; //客户端
基于Eclipse paho的MQTT java客户端
用java swing做的一个MQTT客户端,实现了连接MQTT服务器,订阅-发送消息
mqtt基于paho的消息订阅接收的JAVA代码
看到网上的部分代码,对于订阅主题后,使用mqttCallBack接口来接收消息,虽然这种方法也可以接收到消息,但是mqtt Paho提供了正规的方法去接收消息,这里分享一下自己的demo。 使用callback接口订阅类: import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.cl...
Paho MQTT 嵌入式c客户端研究笔记
最近做物联网设备,需求长连接推送功能。当前物联网有一个标准协议是MQTT,对应有很多开源服务端,如何快速接入这个服务呢。有两种接入方案:   1.自己clone 代码修改维护。   2.找第三方服务,比如当前提供支持的有云巴,bat。bat目前都还处于公测中,at使用都需要申请设备,b可以直接接入。对比了价格,b最便宜,一个月免费消息1百万条。   最后决定先尝试使用百度云的MQTT服务后台,
Paho MQTT 嵌入式c客户端研究笔记 (二)
paho.mqtt.embedded-c-master\MQTTPacket\samples,这个目录里面封装了发布消息、订阅消息的示例。运行pub0sub1,这个示例里面会去订阅主题消息、发布主题消息。并且订阅和发布的消息是同一个主题,所以在运行过程中会看到循环打印同一份消息。代码如下:#include <stdio.h> #include <string.h> #include <stdlib.
mqtt服务器搭建以及mqtt客户端图形调试测试工具Paho安装使用
mqtt服务器搭建以及mqtt客户端测试工具安装使用mqtt 服务器选择安装mqtt 发布、订阅介绍mqtt 客户端下载mqtt客户端使用案例 mqtt 服务器选择安装 mqtt 服务器选择 emq , 版本:xxx mqtt 发布、订阅介绍 发布、订阅 的理解 流程图等 介绍 mqtt 客户端下载 下载地址:https://repo.eclipse.org/content/reposi...
MQTT客户端paho 对应的java环境JDK
之前为了让调试MQTT 安装了几个版本的paho 和JDK,结果paho 总是不能运行,查了很多资料结果发现 paho和JDK的版本不配套,特意上传配套的paho和java开发环境jdk
物联网 -Paho MQTT C Cient的实现和详解
概述   在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端。但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并不吻合,今天我就结合新的例子,给大家讲解一下Paho使用MQTT客户端的主要过程。   如同前面介绍的,MQTT客户端分为同步客户端和异步客户端。今天主要讲解的是同步客户端,结构还是如同步客户端中
Eclipse Paho简易的MQTT测试jar软件
Mac安装Eclipse Paho遇到的问题 mac安装Eclipse Paho不能运行! mac安装Eclipse Paho按照博客《Mac安装Eclipse Paho遇到的问题》修改路径仍然不能运行!https://www.cnblogs.com/starstarstar/p/9784073.html 怎么办??? 用这个软件替代吧;都是Eclipse Paho的官方测试工具:org.eclipse.paho.mqtt.utility;这个软件很小200K左右;是一个jar包,有jdk环境就能运行了。
使用js连接mqtt
描述:使用javascript连接mqtt 代码: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta name="viewport" content="width=device-width,initial-scale=1.0"&gt; &lt;t...
Linkit ONE开发板实验04-SD卡操作
Linkit ONE有内置的10M大小的SPI Flash,另外还有一个外置MicroSD卡(TF卡)插座。本实验使用外置的MicroSD卡来进行。 注意:1.实验前需要将板子上的SPI-SD开关波动到SD这边来启用外部MicroSD卡;2.需要将MicroSD卡格式化为FAT32格式(未测试FAT分区)。 实验代码如下所示: #include #include #include
paho mqtt client 1.2 jar+源码
paho mqtt client
MQTT客户端--基于paho实现(Java)
订阅类: package org.chisj.mqtt; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.eclipse.paho.cl
对 mqtt client paho的简单封装
先自定义一个监听器(回调) package com.xyes.mqtt.listeners; /** * Created by 郭文梁 on 2017/8/31. */ @FunctionalInterface public interface OnMessageListener { void handleMessage(String topic, String message);
关于Linkit one实现蓝牙和GPS的一些问题
rn 各位物联网的技术大牛,我是一名在校大学生,暑假留校实习选了一个Linkit one的项目,几个人一起。具体内容是在Linkit one上将GPS定位的信息通过蓝牙模块发送到电脑或者手机端(Linkit one有自带的蓝牙和GPS功能),将定位信息在电脑或者手机地图上显示,我们在第一步就遇到了问题,用官方的程序定位出来的经纬度完全的错的,联系技术人员多次,最终还是说我们的板子有问题,我们有两块板子,我想出问题的概率应该很小吧,,,老师就叫我们先把后面的先做了,前面的我们把板子寄回厂家换了,后面的主要内容就是将动态的经纬度在电脑终端显示,有一个学长说用一个Java程序写很好做,将动态的经纬度传到 html 这个为后缀的文件中,打开就能在浏览器中显示位置。这个html 文件是通过百度地图API 获得的,,,,具体就是这样,有哪位技术大牛或者熟悉Linkit one的大牛指点一下我。先谢谢大家了,,,,,,,,
Linkit ONE开发板实验00-开发板简介
Linkit ONE开发板是一个支持 GPS、GPRS、WiFi、蓝牙、MicroSD卡的Arduino兼容的物联网开发板。Linkit ONE支持锂电池供电,这样我们可以方便的让LInkit ONE在户外工作。Linkit ONE的标准开发环境为Arduino IDE,我测试的时候发现MediaTeck提供的SDK不能支持最新的Arduino IDE版本,退回1.6.6后可以正常工作。 官网简
使用MQTTnet搭建Mqtt服务器
官方介绍: MQTTnet MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from h...
MQTT服务器Mosquitto安装及使用
对于MQTT还比较陌生的小伙伴可以参考以下文章: MQTT入门篇 MQTT协议中文版 MQTT官网 一、Mosquitto安装 1.安装命令:控制台直接输入 brew install mosquitto 然后静静等待。。。。。。。。。。 看到如下图片就快接近胜利了! 这时候我们就可以开启我们的服务啦! 2.输入:brew services start mosquit
使用EMQ搭建MQTT服务器
前言 寒假的时候开始搭建mqtt服务器,一开始使用的是RabbitMQ,基于Erlang语言.但是RabbitMQ的本职工作是AMQP,MQTT只是他的一个插件功能,似乎有些大材小用,很多MQTT的功能也没有集成.这次我打算使用EMQ来重新部署我的MQTT服务器.EMQ也是基于 Erlang/OTP 语言平台开发.他是支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器。 支持的...
mqtt连接
        var client = mqtt.connect(mqttUrl, {             keepalive : 10,             clientId : '',             protocolId : 'MQTT',             protocolVersion : 4,             clean : true,         ...
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件