很多站长朋友们都不太清楚阿里云mqttphp,今天小编就来给大家整理阿里云mqttphp,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php安装mqtt扩展【Mosquitto】 2、 阿里云mqtt收费标准 3、 玩转 ESP32 + Arduino (十六) 通过mqtt协议连接阿里云 4、 阿里云微消息队列(MQTT)的基本使用 5、 如何通过php实现mqtt协议 php安装mqtt扩展【Mosquitto】没有安装mosquitto的可以看一下链接先安装一下
MQTT服务器搭建-mosquitto1.4.4安装指南
然后我们来安装php扩展
如果你已经使用预先建立的软件包来安装Mosquitto,你需要确保你已经安装了开发头文件。在红帽派生的系统上,这可能是叫做libmosquitto-devel,在基于 Debian的系统上叫做libmosquitto-dev。
你可以使用pecl来来安装这个拓展包:
pecl install Mosquitto-alpha
1
或者,你也可以使用常规的安装拓展的方法来安装:
phpize
./configure --with-mosquitto=/path/to/libmosquitto
make
make install
1
2
3
4
然后添加extension=mosquitto.so到你的PHP配置文件php.ini中。
--with-mosquitto
1
是可选参数,只有当安装程序找不到libmosquitto拓展包,才需要添加这个参数
阿里云mqtt收费标准以下是阿里云mqtt收费标准:
其中铂金版实例、标准版实例、轻量版实例是包年包月(预付费)。是一种预付费模式,即先付费再使用。一般适用于业务量较大且长期运行的场景,通过包年包月付费方式您可以提前预留资源,同时享受更大的价格优化,帮您最大程度节省成本。
还有就是按量付费实例是按量付费(后付费)。即是一种后付费模式,即先使用再付费。一般适用于业务流量波峰波谷差异明显或临时测试的场景,可以有效避免资源浪费。
微消息队列mqtt版费用组成:
按量付费包括:同时在线连接数;消息收发量;订阅关系数
包年包月包括:连接数上限;消息TPS上限;订阅关系数上限
计价倍率介绍:
MQTT协议QoS=0且cleanSession=true 1
MQTT协议QoS=0且cleanSession=false 1
MQTT协议QoS=1且cleanSession=true 2
MQTT协议QoS=1且cleanSession=false 5
MQTT协议QoS=2且cleanSession=true 5
玩转 ESP32 + Arduino (十六) 通过mqtt协议连接阿里云需要用到的库:
引入"PubSubClient.h"后
打开"PubSubClient.h"
修改如下内容:
关于MQTT协议, 请参考文章:
请参考我之前整理的文档:
【腾讯文档】MQTT连接阿里云示例(1)
如果使用了AliyunMqttArduino, 就不需要关系协议的报文和加密方式了
首先创建一个mqtt客户端
返回值: 连接结果
返回: 状态码
mqttClient.publish(主题, 内容)
首先, 创建产品:
其次, 为产品添加设备
第三, 查看设备关键信息:
创建完后,我们发现系统已经自动创建了一些功能定义
找到产品的功能页面, 点击"编辑草稿"
最后发布新的物模型
非常简单的修改, 只修改了要发送json里的param
注意同步修改param和json的内存占用大小
阿里云微消息队列(MQTT)的基本使用最近应系统功能需求,采购了一款云喇叭的物联网设备,就是插着4G卡那种,可以播放各种语音,仔细阅读了开发文档之后发现使用的是MQTT的协议,记录一下在对接中遇到的各种问题
MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
MQTT特点:
阿里云的MQTT有两个版本,这里只说没有RocketMQ依赖的3.1.1及以上版本。
这里会自动生成用户名密码
如何通过php实现mqtt协议MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。
我们可以从这里下载该项目的实例代码,并且可以找到一个采用PHP书写的服务器端实现。
架构如下所示:
wmqtt.jar 是IBM提供的MQTT协议的实现。你可以从如下站点下载它。你可以将该jar包加入你自己的Android应用程序中。
Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。
SAM是一个针对MQTT写的PHP库。你可以从这个下载它.
send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本。
实例代码:
Ø 采用XMPP协议实现Android推送
这是我在项目中采用的方案。事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。
XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。
androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。经过源代码研究我发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的,不过比较郁闷的是androidpn的文档是由韩语写的,所以整个研究过程基本都是读源码。它的实现示意图如下:
androidpn客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。
androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。服务器架构如下:
最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。
服务器端界面如下,分别对应了上述的几个功能模块:
发送以后,我们可以在手机端看到接收的消息:
关于阿里云mqttphp的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于阿里云mqttphp 阿里云mqtt服务器搭建的详细内容...