手把手学IOT服务端API编程[13、发布消息到Topic]|MVP讲堂

手把手学IOT服务端API编程[13、发布消息到Topic]|MVP讲堂

作者:阿里云MVP洵云

10节回顾:手把手学IOT服务端API编程[10、保存设备属性]|MVP讲堂

11节回顾:手把手学IOT服务端API编程[11、查询设备属性列表]

12节回顾:手把手学IOT服务端API编程[12、删除设备属性]

下节链接:手把手学IOT服务端API编程[14、发消息给设备并同步返回响应]

上节介绍设备设备属性后,实际使用过程中,服务端通常会发一些指令或数据消息给设备,然后设备做出相应逻辑动作,服务端的API接口也提供了相应的功能,
这一节就来介绍一下发送消息的使用,这个接口需要提供三个参数,一个是产品的key值,一个是消息名称以及消息内容;
接下来我们看一下具体实现;


1、脚本实现:
我们按照接口的要求,在框架页面上,提供产品的key值和消息名称以及消息内容,这三个输入参数框给用户输入,
产品KEY:        <input type=”text” name=”pkey13″>
Topic名称:        <input type=”text” name=”topicname13″>
消息内容:        <input type=”text” name=”msgcontent13″>


而在实际的实现代码中,我们只需要使用get函数提取这个变量就可以了:
$pkey = $_GET[“pkey13”];
$topicname = $_GET[“topicname13”];
$msgcontent = $_GET[“msgcontent13”];
接着引用查询设备列表的接口:
$request = new Iot\PubRequest();


通过查看 PubRequest.php文件,可以知道我们需要调用setProductKey和setTopicFullName以及setMessageContent三个函数,来给服务端传送产品key值和消息相关信息;这里消息的内容,根据网络惯例是转换成base64格式编码的,所以这里调用了php脚本里的转换函数:base64_encode,来将ascii字符串转换为base64格式;
$request->setProductKey($pkey); 
// /8HDXYtlB7aw/hello1/get
$request->setTopicFullName($topicname); 
$request->setMessageContent(base64_encode($msgcontent)); 


调用通用的网络查询操作后,最后对返回信息进行分析;首先显示常用的requestid和success这两个通用的信息:


echo ‘RequestId :’.$response->RequestId.'<br>’;
echo ‘Success :’.$response->Success.'<hr>’;


2、设备端模拟:
以前教程都是完全服务端的编程,由于本次教程是发送消息给设备,需要设备在线,所以还需要模拟一个设备的运行。这里使用官方提供的基于linux平台的sdk和相关的例子:
2.1 通过wget命令得到阿里iot的开发包。
wget xunyun17.xyz/iotmaster.tar
2.2 解压下载后的压缩包;
sudo tar xvf iotmaster.tar
2.3 编辑mqtt的例子文件,将相关的产品和设备以及消息信息修改己的信息:
vi iotkit-embedded-master/iotkit-embedded-master/sample/mqtt/mqtt-example.c
2.4 保存后,退出,重新编译这个代码:
cd iotkit-embedded-master/iotkit-embedded-master/
make clean
sudo make all
2.5 编译结束后,运行编译后的例子文件:
output/release/bin/mqtt-example


        
3、实际测试:
打开浏览器,转到我们框架脚本页面,这里输入我们从控制台得到的产品key值和要发送的消息名称以及消息内容,运行提交按钮后,可以得到是否发送成功的信息,然后到设备模拟终端,查看状态,可以看到已经接受到服务端发来的信息:
具体向关截图如下:

395_1939185177035471_9e0e86b14c1a1d3.png

395_1939185177035471_a8102af177cf8cd.png

395_1939185177035471_1c91b76e7b0ccd4.png

http://www.xunyun17.xyz/ioto/step13-PubRequest.mp4

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101271.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月17日 下午10:00
下一篇 2021年6月18日 上午8:00


相关推荐

  • SAXReader从输入流中读取XML文件

    SAXReader从输入流中读取XML文件Mapmap newHashMap nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 从 request 中取得输入流 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp InputStreami request getInputStre nbsp nbsp nbsp 读取输入流 nbsp nbsp nbsp nbsp nbsp nbsp nbsp SAXReaderrea newSAXReader nbsp nbsp nbsp nbsp nbsp nbsp 生成 document 实体

    2025年11月14日
    4
  • Xenu-死链接检测工具「建议收藏」

    Xenu-死链接检测工具「建议收藏」Xenu是一款深受业界好评,并被广泛使用的死链接检测工具。时常检测网站并排除死链接,对网站的 SEO 非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任。我们推荐的死链接检测工具Xenu主要具有以下特征:需要下载安装,不到1M大小,用户界面非常简洁,操作简单。检测彻底:能够检测到图片、框架、插件、背景、样式表、脚本和java程序中的链接。报告形式合理多样

    2022年7月23日
    15
  • chmod命令使用方法

    chmod命令使用方法chmod:给文件设置权限。详细用法:指令名称:chmod使用权限:所有使用者使用方式:chmod[-cfvR][–help][–version]modefile…说明:Linux/Unix的档案调用权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所调用。参数:mode:权限设定字串,格式如下:[ugoa…][[±=][rwxX]…][,…],其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(gr

    2022年6月18日
    28
  • 零基础带你部署小龙虾,让你拥有属于自己AI员工

    零基础带你部署小龙虾,让你拥有属于自己AI员工

    2026年3月14日
    2
  • 深度学习基础知识整理「建议收藏」

    深度学习基础知识整理「建议收藏」本文是在七月的BAT机器学习面试1000题系列进行修改。 前言  July我又回来了。  之前本博客整理过数千道微软等公司的面试题,侧重数据结构、算法、海量数据处理,详见:微软面试100题系列,今17年,近期和团队整理BAT机器学习面试1000题系列,侧重机器学习、深度学习。我们将通过这个系列索引绝大部分机器学习和深度学习的笔试面试题、知识点,它将更是一个足够庞大的机器学习和深…

    2022年5月2日
    68
  • websocket和http的区别和联系

    websocket和http的区别和联系websocket 和 http 的区别和联系

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号