当前位置:首页 » 云服务器 » 小白搭建mqtt服务器

小白搭建mqtt服务器

发布时间: 2022-08-23 09:22:47

⑴ 想问一下,如何用MQTT协议搭建一个物联网空调的阿里云服务器,谢谢

MQTT推荐使用EMQ,来自国人开发的产品

⑵ 如何自己搭建一个xmpp,实现推送消息

Android推送方案分析(MQTT/XMPP/GCM)
蜗牛TT 发布于 4个月前,共有 11 条评论
本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选择最合适的实施方案。
方案1、使用GCM服务(Google Cloud Messaging)
简介:Google推出的云消息服务,即第二代的G2DM。
优点:Google提供的服务、原生、简单,无需实现和部署服务端。
缺点:Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。

方案2、使用XMPP协议(Openfire + Spark + Smack)
简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的java版的开发实例androidpn。
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。

方案3、使用MQTT协议(更多信息见:http://mqtt.org/)
简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。
优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考:http://mqtt.org/software),且已有C++版的服务端组件rsmb。
缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

方案4、使用HTTP轮循方式
简介:定时向HTTP服务端接口(Web Service API)获取最新消息。
优点:实现简单、可控性强,部署硬件成本低。
缺点:实时性差。

对各个方案的优缺点的研究和对比,推荐使用MQTT协议的方案进行实现,主要原因是:MQTT最快速,也最省流量(固定头长度仅为2字节),且极易扩展,适合二次开发。接下来,我们就来分析使用MQTT方案进行Android消息的原理和方法,并架设自己的推送服务。

如果还不明白的 话,要看分析的话,给你个网址:http://m.oschina.net/blog/82059
自己看看。

⑶ mqtt 服务器搭建需要用到java吗

最近公司做的项目中有用到消息推送,经过多方面的筛选之后确定了使用MQTT协议,相对于XMPP,MQTT更加轻量级,并且占用用户很少的带宽。
MQTT是IBM推出的一种针对移动终端设备的基于TCP/IP的发布/预订协议,可以连接大量的远程传感器和控制设备。
MQTT的官网见:http://mqtt.org/。其中http://mqtt.org/software里面提供了官方推荐的各种服务器和客户端使用的各种语言版本的API。
下面以服务器Apollo 1.6为例,之前尝试过使用ActiveMQ,效果很不理想,只能实现服务器和客户端一对一的通信,从官网上了解到Apollo属于activemq的一个子工程。先不管这些了,言归正传,以下在windows环境下。
1、在这里下载Apollo服务器,下载后解压,然后运行apache-apollo-1.6\bin\apollo.cmd,输入create mybroker(名字任意取,这里是根据官网介绍的来取的)创建服务器实例,服务器实例包含了所有的配置,运行时数据等,并且和一个服务器进程关联。
2、create mybroker之后会在bin目录下生成mybroker文件夹,里面包含有很多信息,其中etc\apollo.xml文件下是配置服务器信息的文件,etc\users.properties文件包含连接MQTT服务器时用到的用户名和密码,后面会介绍,可以修改原始的admin=password,可以接着换行添加新的用户名密码。
3、打开cmd,运行…apache-apollo-1.6\bin\mybroker\bin\apollo-broker.cmd run 开启服务器,可以在浏览器中输入http://127.0.0.1:61680/查看是否安装成功,该界面展示了topic,连接数等很多信息。
经过上面的简单步骤,服务器基本上就已经完成,下一篇将介绍Android客户端的编写和注意事项。
客户端使用的API,开始我使用的是mqtt-client,使用过后发现问题百出,不能很好的满足要求,后来使用了官方推荐的Eclipse Paho,下面开始客户端代码的编写,为了方便测试这里有android和j2se两个工程:
1、新建android工程MQTTClient
2、MainActivity代码如下:

⑷ ubuntu mqtt 服务怎么搭建

在Ubuntu下搭建MQTT服务器",主要涉及到【MQTT】在Ubuntu下搭建MQTT服务器方面的内容,对于【MQTT】在Ubuntu下搭建MQTT服务器感兴趣的同学可以参考一下。

⑸ 在云服务器上搭建了mqtt,为什么手机连接不上mqtt,要怎么做才能连接上求求大神帮忙

MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,网络云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的平台还需要付费。另一方法是自己使用开源的MQTT组件来搭建。
MQTT服务器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。
这里介绍的是用轻量级的mosquitto开源项目来搭建一个属于自己的MQTT服务器。
第一步:需要安装一台linux主机,这不多介绍,可以使用真机安装也可以使用虚拟机安装。如果仅仅是自己测试使用都可以。
第二步:下载mosquitto需要的依赖
sudo apt-get install libssl-devsudo apt-get install uuid-devsudo apt-get install cmake

第三步:下载mosquitto并解压,现在mosquitto官网最新的版本是1.5.1
tar xzvf mosquitto-1.5.1.tar.gz
第四步:编译
cd mosquitto-1.5.1/
make
make install
第五步:启动mosquitto
./mosquitto -v
1535473957: mosquitto version 1.5.1 starting
1535473957: Using default config.
1535473957: Opening ipv4 listen socket on port 1883.
1535473957: Opening ipv6 listen socket on port 1883.
这时候mosquitto就会以默认的参数启动。如果需要带配置文件可以修改配置文件mosquitto.conf,
启动时候加上参数 -c,
./mosquitto -c mosquitto.conf
可以看到,mosquitto监听的端口为1883.
这时候我们的MQTT服务器就搭建好了。可找一个mqtt客户端来测试一下。
先发布一个主题“home/garden/fountain/2”
内容是“hello world”
这时候在mosquitto会打印出下面的log
535474247: New connection from 192.168.1.105 on port 1883.
1535474247: New client connected from 192.168.1.105 as MQTT_FX_Client (c1, k60).
1535474247: No will message specified.
1535474247: Sending CONNACK to MQTT_FX_Client (0, 0)
1535474307: Received PINGREQ from MQTT_FX_Client
1535474307: Sending PINGRESP to MQTT_FX_Client
1535474339: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'home/garden/fountain/2', ... (12 bytes))
1535474367: Received PINGREQ from MQTT_FX_Client
1535474367: Sending PINGRESP to MQTT_FX_Client

订阅主题“home/garden/fountain/2”

可以看到收到了自己发布的消息。
用wireshark抓包
可以看到抓到了一个MQTT的publish的报文。

⑹ 海为物联云HMI如何设置MQTT

首先需要搭建MQTT服务器,然后搭建MySQL数据库,然后使用海为组态写段程序,最后配置客户端验证即可。具体可以参考内容 Haiwell(海为)HMI/CBOX/IPC MQTT 配置应用教程网页链接

⑺ 如何用mosquitto搭建服务器

Mosquitto是一款实现了消息推送协议MQTT v3.1的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
Mosquitto官网:
MQTT协议:
客户端连接日志
1403334375: New connection from 121.201.8.163 on port 1883.

1403334375: New client connected from 121.201.8.163 as zhoujing (c0, k60, ujoyo).

1403334375: Sending CONNACK to zhoujing (0)

以上是一个客户端正常连接的日志。
第一行:服务器收到一个新的连接请求
1403334375: 表示连接的时间点
121.201.8.163: 客户端的IP地址
1883: 连接的服务器端口号
第二行:服务器为客户端建立连接
zhoujing (c0, k60, ujoyo): 客户端连接指定的ClientID为'zhoujing'
c0: 表示cleanSession=false,不清除session
k60: 表示keep-alive=60s
ujoyo: 表示使用的服务器账号为joyo
第三行:发送连接ACK包给客户端
客户端订阅过程日志
1403334375: Received SUBSCRIBE from zhoujing
1403334375: jiji/chat/9 (QoS 2)
1403334375: zhoujing 2 jiji/chat/9
1403334375: Sending SUBACK to zhoujing

第一行:服务器收到一个来自ClientID为zhoujing的订阅请求
第二行:服务器识别zhoujing订阅的主题为 jiji/chat/9,指定的QOS=2(有且只发送一次)
第三行:给ClientID=zhoujing客户端发送订阅ACK回包
服务器发送内容给客户端日志
1403334378: Sending PUBLISH to zhoujing (d0, q2, r0, m1, 'jiji/chat/9', ... (396 bytes))
1403334378: Received PUBREC from zhoujing (Mid: 1)
1403334378: Sending PUBREL to zhoujing (Mid: 1)
1403334378: Received PUBCOMP from zhoujing (Mid: 1)

第一行:服务器正在发送一个消息给ClientID=zhoujing的客户端,消息体大小为396 bytes,消息主题为‘jiji/chat/9’
(d0, q2, r0, m1)的解释, 以下参数具体含义,参考MQTT协议
d: 表示mqtt报头的DUP字段
q: 表示的QOS字段
r: 表示的是RETAIN
m: 表示的是消息ID,即mid
第二行:发布收稿阶段,有保证的交付第一部分
第三行:出版发行阶段,有保证的交付第二部分
第四行:发布完成,有保证的交付第三部分,至此一个内容发部过程完成
客户端主动断开连接的日志
客户端主动断开连接的只有一行日志,很简单。如下所示:
1403334380: Received DISCONNECT from JY_API_PUSH_CLIENT

接收客户端发布内容的过程日志
1403334389: Received PUBLISH from JY_API_PUSH_CLIENT (d0, q2, r0, m1, 'jiji/chat/9', ... (396 bytes))
1403334389: Sending PUBREC to JY_API_PUSH_CLIENT (Mid: 1)
1403334389: Received PUBREL from JY_API_PUSH_CLIENT (Mid: 1)
1403334389: Sending PUBCOMP to JY_API_PUSH_CLIENT (Mid: 1)

第一行:接收来自ClientID=JY_API_PUSH_CLIENT的发布请求,发布的消息主题为'jiji/chat/9',消息大小为396 bytes
第二行:服务器发送PUBREC给客户端,此过程与发送消息给客户端正好对称,只不过是Received和Sending的对象反过来而已
第三行:服务器接收到客户端已经释放的命令,内容交付第二步完成
第四行:通知客户端,接收完成,至此一个消息发布完成,内容交付第三步完成
同一个ClientID重复连接时
1403334510: New connection from 121.201.7.150 on port 1883.
1403334510: Client JY_API_PUSH_CLIENT already connected, closing old connection.

接收客户端心跳包
1403336716: Received PINGREQ from 36383A64663A6464003V0
1403336716: Sending PINGRESP to 36383A64663A6464003V0

客户端连接超时,服务器主动清除连接信息
1403336671: Client 33303A33393A3236003V0 has exceeded timeout, disconnecting.

客户端socket异常时的日志
1403337602: Socket error on client 351BBJKFX62C1, disconnecting.
1403337602: Socket error on client 351BBJKFX62C0, disconnecting.

⑻ 怎么搭建esp8266智能家居mqtt服务器

存储读取到的ESP8266的信息,然后用print发送到串口上去。 如果你的串口监视器打开了,就可以看到信息了。

⑼ 黑群晖怎样搭建MQTT服务器

1、打开群晖Docker,注册表搜索:mqtt;
2、点击下载好的镜像文件创建容器,输入容器名字,点击高级设置
3、勾选启用自动重新启动
4、点击网络—-勾选与docker host相同的网络,点击应用,一直下一步直到创建完成

⑽ ios开发 mqttsdk 和 mqttkit 哪个好用

新建一个类VPKCClientManager
VPKCClientManager.h代码如下
#import
#import "MQTTKit.h"

@interface VPKCClientManager : NSObject

+ (instancetype)sharedClient;
- (void):(void(^)(NSDictionary*dict))messageHandler;

@end

VPKCClientManager.m代码如下
#import "VPKCClientManager.h"

#define MQTT_HOST @"**************"//MQTT服务器网址 什么?你们后台不会搭建MQTT服务器 呵呵。。

static VPKCClientManager *instance = nil;

@implementation VPKCClientManager
{
MQTTClient *client;
}

+ (instancetype)sharedClient
{
//这里用到了单例 个人感觉不用也行
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}

- (instancetype)init
{
if (self = [super init]) {
//这里我们选择了把deviceId作为mqtt的clientId port为端口号 username是用户名 password是密码
NSString *deviceId = [[NSUserDefaults standardUserDefaults]objectForKey:@"deviceId"];
NSString *clientId = [NSString stringWithFormat:@"kc-%@", deviceId];
client = [[MQTTClient alloc] initWithClientId:clientId];
client.port = 1883;
client.username = @"kidcares";
client.password = @"12345";
}
return self;
}
// 重点来了 这里是MQTT的订阅方法 在你需要的地方 调用就行
- (void):(void(^)(NSDictionary*dict))messageHandler
{

[client setMessageHandler:^(MQTTMessage *message){
id json = [NSJSONSerialization JSONObjectWithData:message.payloadoptions:NSJSONReadingAllowFragments error:nil];
messageHandler(json);
}];

[client connectToHost:MQTT_HOSTcompletionHandler:^(MQTTConnectionReturnCode code) {
if (code == ConnectionAccepted) {

[client subscribe:client.clientID withCompletionHandler:nil];
}
}];

}
@end

然后在你要用的控制器中导入#import "VPKCClientManager.h"
创建一个对象static VPKCClientManager *clientManager;
clientManager = [VPKCClientManager sharedClient];//初始化

这里就是MQTT的订阅方法 这个方法执行后 在MQTT服务器上就可以看到你的设备 dict就是从MQTT服务器传下来的内容

[clientManager :^(NSDictionary *dict) {
[clientManager :^(NSDictionary *dict) {

for (id key in dict) {//因为MQTT可以有多种用处,为了区分各个功能这里我们选择了遍历dict 根据key来判断如何做出响应
if ([key isEqualToString:@"shoutResult"]) {

}
else if ([key isEqualToString:@"chat"])
{
NSDictionary * chat = [dict valueForKey:@"chat"];
playurl = [chat valueForKey:@"fileUrl"];//这里取出服务器文件的地址
time = [chat valueForKey:@"fileRunningTime"];
//这个是文件下载的封装方法 下面会有介绍
[self.audio downloadTaskURL:playurl completion:^(NSURL*fileplay) {
[:@selector(refreshtable:) withObject:fileplaywaitUntilDone:NO];//因为AFN下载涉及到多线程问题,如果不采用主线程加载,UI效果不会刷新
self.url = fileplay;

}];
}
}

}];

热点内容
师资配置含哪些内容 发布:2025-01-18 07:17:35 浏览:705
江西脚本 发布:2025-01-18 07:14:38 浏览:391
php中i方法 发布:2025-01-18 07:13:19 浏览:368
FTP宝塔Linux面板 发布:2025-01-18 07:10:05 浏览:395
无线网卡怎么改密码 发布:2025-01-18 06:54:41 浏览:765
ava动态编译 发布:2025-01-18 06:54:39 浏览:764
中国学位论文全文数据库 发布:2025-01-18 06:43:49 浏览:688
全局变量存储类别 发布:2025-01-18 06:39:29 浏览:423
苹果平板的王者号如何转移到安卓 发布:2025-01-18 06:37:11 浏览:611
图片访问量 发布:2025-01-18 06:36:34 浏览:497