阿里云
1024开发者盛宴之Java专家问答专场
发表主题 回复主题
  • 1924阅读
  • 1回复

小白学习IOT 第一课 模拟设备RPC上报

级别: 论坛版主
发帖
1966
云币
4134
— 本帖被 不靠谱贝贝 从 物联网架构交流 移动到本区(2017-06-19) —
上一篇文章,介绍了了如何模拟设备上线,这回我们介绍下如何模拟设备向服务端发送RPC消息。
第一步:
在IOT控制台,点击产品后,点击左边消息通信,选择服务调用(RPC/Rvert-RPC)选项页,然后选择‘[font=&amp]配置云端服务地址’,输入你的服务器的地址和端口以及目录,这里我是用80端口和ALIIOT目录,你可以己定义自己偏好的端口和目录,界面如下:






第二步:

修改服务器配置,添加RPC对应的解析路径和文件,IOT RPC用的是POST方法上传给服务器的,所以我们也需要服务器用对应的POST方法解析,我这里用的是NGINX服务器和PHP来解析的,所以我的修改如下:
nginx的配置文件路径通常为:/etc/nginx/sites-available/default,在server中添加:
    location /aliiot {
        #root /usr/share/nginx/html;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        access_log  /var/log/nginx/iot.log;


        if ($request_method = POST) {
            access_log /var/log/nginx/post.log;
            proxy_pass $scheme://127.0.0.1/aliiot/aliiot.php;
        # break;
        }  
    }
这段配置的意思是,当有IOT 的RPC上报时,NGINX就转发到aliiot/aliiot.php这个文件。
本地修改配置保存后,上传到服务端,然后检查配置和重新加载nginx:
nginx -t
service nginx reload


第三步:

创建服务端接收目录和文件:因为我们已经在网页服务器的配置添加IOT相应的路径,所以要创建这个路径和文件,
我的WEB根目录是/usr/share/nginx/html/,所以我在这个目录下创建一个目录:aliiot,然后在这个目录下创建一个文件:
mkdir aliiot
touch aliiot.php
前面提到,当有设备上报RPC消息时,就会给我们配置的文件发送POST请求,所以我们在PHP文件里把这个请求写到另一个DEMO.php文件,这样在浏览器就可以查看我们上传的消息了。
<?php


$inputv = file_get_contents('php://input');


$phpv = "<html><meta charset='UTF-8'><title>阿里云IOT测试</title><p><center><head>小白学习IOT之PRC上报</head><body bgcolor='gray'>\r\n<?php\r\n".'echo "<hr><br>'.$inputv.'";'."\r\n?>\r\n</body></head></center></p></html>";
$fp = fopen("demo.php", "w");
fwrite($fp, $phpv);
fclose($fp);
?>
第四步:

修改模拟设备的RPC上报的消息,阿里云IOT的例子是上报HELLO,WORLD消息,我们改一下其他消息试试,在\examples\linux\ccp\demo.c文件main函数:

    rpcReq.payload = (unsigned char *) "hello world";
    rpcReq.payloadLen = strlen("hello world");
改为:
    rpcReq.payload = (unsigned char *) "你好,世界。";
    rpcReq.payloadLen = strlen(rpcReq.payload);
    然后编译运行,
make,
./demo
第五步:
使用浏览器运行网址,查看结果:http://<你的URL>/aliiot/demo.php





为了方便大家学习,附件为文中提到NGINX配置文件,设备的DEMO.C文件和服务端的ALIIOT.PHP文件。
RPC上报.rar (5 K) 下载次数:52

看大家都有录视频,因为声音不好听,就录了段TIMELAPSE,怀念一下逝去的童年。视频链接:http://xunyun17.xyz/iottimelapse/lesson1.mp4

因为网站带宽不大,可能会很卡,大家可以下载下来看。













[ 此帖被魔咒626在2018-06-10 10:43重新编辑 ]
本帖最近评分记录: 1 条评分 云币 +10
whosoft 云币 +10 谢谢分享,辛苦啦 2017-06-02
级别: 论坛版主
发帖
880
云币
2820
只看该作者 沙发  发表于: 2017-06-02
谢谢分享,辛苦啦
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个