阿里mqtt得使用

调试用的工具下载地址:

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

阿里云服务

      许多人对云服务一知半解,以为知道个ECS/云主机,就是云服务的全部了。其实,云服务有许多内容,消息中间件服务也是其中一种。

      消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景,具体内容园中相关文章不少,笔者不再此献丑了呵。

      本文主要对阿里云提供的MQTT服务进行具体实战配置应用进行说明。

MQTT简介

 MQTT是基于二进制消息的发布/订阅编程模式的消息协议,最早由IBM提出的,如今已经成为OASIS规范。由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景,比如:

遥感数据

汽车

智能家居

智慧城市

医疗医护

 由于物联网的环境是非常特别的,所以MQTT遵循以下设计原则:

精简,不添加可有可无的功能。

发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。

允许用户动态创建主题,零运维成本。

把传输量降到最低以提高传输效率。

把低带宽、高延迟、不稳定的网络等因素考虑在内。

支持连续的会话控制。

理解客户端计算能力可能很低。

提供服务质量管理。

假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景,如下图所示:

.登录阿里云

首先,我们打开阿里云。

https://www.aliyun.com/

右上角,登录

支持多种方式登录

可用阿里系旗下的淘宝、支付宝、钉钉等帐号登录而无需注册呵,真是方便啊

不过当中,还夹了一个微博登录,不知是什么个情况,本人不用这个,不管也罢。

选择淘宝登录

消息队列MQ

咦,不是要说MQTT吗?怎么扯到MQ消息队列了呢?这是因为阿里云的MQTT服务自身没有持久化功能,需要依托MQ服务的持久化,所以我们需要先开通MQ服务。

登录阿里云后,找到管理控制台,在如下位置,找到MQ相关服务

阿里云中的产品太多,笔者摸索了半天才找到的呵。

开通RocketMQ服务

选择消息队列MQ

单击消息队列 RocketMQ进入消息队列 RocketMQ 的产品主页。

在消息队列 RocketMQ 的产品主页上,单击立即开通进入消息队列 RocketMQ 服务开通页面,根据提示完成开通服务。

注:开通服务不收费!!!

创建资源

资源类型说明

一个新的应用接入消息队列 RocketMQ 需要先创建相关的消息队列 RocketMQ 资源,包括:

实例:用于消息队列 RocketMQ 服务的虚拟机资源,会存储消息主题(Topic)和客户端 ID(Group ID)信息。

消息主题(Topic):在消息队列 RocketMQ 的消息系统中,消息生产者将消息发送到某个指定的 Topic ,而消息消费者则通过订阅该指定的 Topic 来获取和消费消息。

Group ID用于消息消费者(或生产者)的标识

阿里云 AccessKey:用于收发消息时进行账户鉴权

MQ服务管理界面如下

微消息队列MQTT

在阿里云中,MQTT被称为微消息队列,大家入乡为俗吧。

点击 消息队列 RocketMQ ,出现下拉列表

哦,原来MQTT服务你躲在这里啊(产品中直接搜索MQTT是找不到的哦)

各位同学,看到的界面可能与我有所不同,可能在看到上述界面之间,未开通相关服务的同学,可能会看到一个开通相关服务的界面,点击开通就行了呵。(已开通的话,相关界面是不会再显示的呵)

仅开通服务,不创建相关资源,是不会收费的呵。

创建MQTT实例

创建MQTT实例

弹出购买界面

很多同学可能看到这里就准备要走人了呵,别急,往下看

我们选择最右侧的按量付费套餐。

该收费方式按使用收费!!!

除了顶级Topic是按每天每条2元钱收取资源占用费,其余的内容,按实际使用量收费。

如测试阶段,顶级Topic可以使用时创建,用完删除,仅收费使用日的资源占用费。

我们继续。

购买后,系统自动生成一个MQTT服务实例

系统显示我们已成功创建了一个实例

同时,系统给出了第二步的向导:

消息存储配置

阿里云中的MQTT服务没有提供存储功能,需要一个MQ服务来提供支持。

控制台给出的选项中,Kafka和AMQP目前均不可用

只有RocketMQ可选。

好吧,这也算是选择的话(我有得选吗?)

我们选择新建共享实例,我们以共享单车应用为例,取一个 bike 的实例名

确认,系统生成RocketMQ实例

系统完成MQTT实例的配置,并给出了公网接入点地址。

创建Topic

阿里云的MQTT主题订阅要求必需创建一个顶级的主题资源,这点可能与一些自行搭建的MQTT Broker有所区别,笔者分析可能是出于管理的需要。

 我们创建一个项级Topic

我们选择普通消息,其他的消息类型,大家可自行查看相应的说明。

创建组ID

组ID也是阿里云MQTT通讯中的一定规定,ClientID需要使用组ID为前缀。

RAM资源访问控制

在服务创建过程中,阿里云系统会提示我们需要配置RAM管理

RAM应是资源访问管理的意思,大家可以自行查阅。

创建用户

我们创建一个名为bike的用户

点击确定,系统提示需要手机验证,我们获取验证码后填入并确定(如不需要该用户具有管理功能,只选择编程访问,仅用于程序访问,可无需短信验证

系统生成用户信息,生成了用户名和密码

大家切记,一定要点制复制,将用户信息进行妥善保存,否则,你会发现,前面一顿操作猛如虎,没有AccessKeySecret白瞎杵。

一旦关闭此页面,AccessKeySecret是无法再找回的。

不过,系统中虽然不能查看AccessKeySecret,但是还是允许为用户创建新的AccessKey和AccessKeySecret,万一AccessKeySecret丢失,只有新创建了。

授权

创建用户后,需要对用户进行授权

 对用户添加权限

 我们授与创建用户的MQ访问权限

#玩转MQTT-阿里云之MQTT使用(下)

摘要

       为使物联网项目在正式使用时,能顺利切换到具有高并发高负载能力的服务平台,对阿里云提供的MQTT服务进行使用验证。

引言

之前写“MQTT之阿里云使用-玩转阿里云”这篇文章时,由于时间关系(因水平问题,本人写文章通长耗时较长),打算将内容拆分为两部分,将写好的一部分先发了出去,打算稍后再补充后续完结内容。

       不成想,文章发出后,居然被管理员从首页移除,严重打击了本人原本不那么强悍的内心,导致一直不太有兴趣完成后续部分。

      近来翻看自己的文章,发表这篇烂尾的文章居然是自己文章中阅读访问量最高的一篇。虽然文章内容组织比较凌乱,表述也不够好,在这9102年即将过去之际,还是打算来一个续篇,为自己忙忙碌碌(碌碌无为)的2019做个收尾。

MQTT服务验证

       书接上回,我们说到了阿里云RocketMQ、MQTT服务的开通(MQTT消息的持久化依托MQ服务)、介绍了MQ、MQTT实例的创建,顶级Topic资源的创建,GroupID前缀的创建以及RAM帐号资源的创建及帐号授权。

       一系列准备工作之后,准备开始使用MQTT消息中间件服务。

访问鉴权

       使用微消息队列 MQTT 的客户端收发消息时,服务端会根据 MQTT 客户端设置的 Username 和 Password 参数来进行鉴权。

       阿里云支持两种鉴权模式

       签名验证:永久授权,适用于客户端安全受信任的场景

       临时 Token 权限验证:临时授权,适用于客户端不安全的场景

具体鉴权认证的相关资料在这里,大家可自行访问阅读。https://help.aliyun.com/document_detail/54225.html

签名校验

      简单介绍一下阿里云MQTT访问中的签名鉴权模式下的访问要点

      1、 MQTT连接参数中ClientId必须以GroupID为前缀,以@@@作为连接符,连接自定义的客户ID

      2、 MQTT连接参数中Username由鉴权模式名称、AccessKey、InstanceId 三部分组成,以 “|” 分隔。

      3、 MQTT连接参数中Password是用AccessKey对应的AccessKeySecret对ClientId使用

HMAC-SHA1 方法进行签名计算得到一个二进制数组,再对该二进制数组做 Base64 编码得到最终的 Password 签名字符串。

签名校验资料网址如下:https://help.aliyun.com/document_detail/48271.html

      阿里云MQTT服务管理页面中,提供了一个在线的JS版本的签名校验验证计算页面,用于验证各位自行实现的校验算法是否正确。



MQTT连接测试

让我们调出Paho神器,来一场说连就连的测试

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

https://www.eclipse.org/paho/downloads.php


      如上图,先创建MQTT连接,填入服务器地址及端口,填入客户机标识(ClientId)


      在MQTT连接选项中,勾选开启登录,填写用户名、密码


      点击连接,正常情况下,即可成功连接并登录到阿里云MQTT服务器。

      笔者基于C#,使用开源MQTTnet的Nuget包,也实现了一个简单的MQTT客户端。我们用这个客户端进行连接测试,效果如下图。

消息消费

      MQTT是基于二进制消息的发布/订阅编程模式的消息协议。

      要使用MQTT进行通讯,就需要有发布者和消费者。发布者通过发布主题消息传递信息,接收者通过订阅对应的主题接收和消费信息。

订阅主题

      MQTT客户端与MQTT服务器建立连接之后,我们即可以进行消息订阅和消息发布。

发布主题

      我们使用上文中建立的顶级主题创建一个带有通配符的订阅主题。

      注意,MQTT允许使用通配符订阅主题,但是并不允许使用通配符广播。

       我们创建一个顶级主题下带有城市和发布者编号的主题,发布一条消息,Payload中携带一个json格式的状态信息和坐标信息。

       点击发布,可以看到上图中,接收框中,成功接收到订阅主题下的消息。(操作中发布了二条消息)。

       使用Paho测试消息发布/订阅,效果相同。

       一个发布者发布的消息,可以被多个订阅者接收。

       至此,阿里云MQTT服务使用介绍完毕。

使用MQTT.fx客户端接入阿里云

一、前期准备。

1.关于MQTT连接的属性:https://www.cnblogs.com/mhtc/p/11112153.html

2.关于阿里云配置工具的使用:https://www.cnblogs.com/mhtc/p/11130809.html

3.关于阿里云物联平台MQTT服务的一些属性。

4.MQTT.fx客户端,请百度后官网下载。

二、实际操作。

1.生成连接参数。这里不做介绍,请参考https://www.cnblogs.com/mhtc/p/11130809.html

2.打开MQTT.fx新建一个客户端。

3.将上次生成的信息做如下拷贝粘贴。

4.设置一般参数。

这里都满足平台的要求, 没有做更改。

5.填入用户名和密码。

6.如果采用的是TCP直连,到这里就结束了。如果采用TLS加密传输,需要设置以下。

这个连接没有采用加密传输,没有设置这个步骤。

7.保存配置退出客户端配置界面。连接服务器。

绿点表示连接成功。

登陆物联网管理平台看一下。设备在线。

8. 发布一条消息。

这个是官方提供的基础的主题, 可自定义主题

客户端发布消息

平台端收到消息。发布的消息只能选择QoS0, QoS1, 其他的服务器不支持.

日志:

消息内容:

9.订阅一个主题。订阅主题没有测试。留待以后增加。

三、用一个客户端连接云平台的意义。

1. 验证连接参数的配置是否正确。

2.快速体验MQTT连接,不用写代码编译。

3.可以测试阿里云更深一步的内容,物模型,数据的周转传输等。

配置图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • # Awesome Python [![Awesome](https://cdn.rawgit.com/sindr...
    emily_007阅读 2,197评论 0 3
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,956评论 1 3
  • 1-------- 走进前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥阅读 2,314评论 0 34
  • 傍晚,晚风习习,雨后的季夏没那么闷了,晚上略显凉,天气不是很好。可是,很难得暑假了,无论是形式还是内容上,今天我们...
    大白菜小豆腐阅读 577评论 2 2
  • 最近在滔滔不绝的写东西,主要是训练自己的写作能力和学习能力,虽然染香的龙飞凤舞已经写过三遍了,但是每一次都有新的收...
    阿璇璇阅读 405评论 0 0