开发者社区> 问答> 正文

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

上一篇文章,介绍了了如何模拟设备上线,这回我们介绍下如何模拟设备向服务端发送RPC消息。
第一步:
在IOT控制台,点击产品后,点击左边消息通信,选择服务调用(RPC/Rvert-RPC)选项页,然后选择‘ [font=&]配置云端服务地址’,输入你的服务器的地址和端口以及目录,这里我是用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文件。


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

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













展开
收起
洵云 2017-06-01 16:59:35 5574 0
1 条回答
写回答
取消 提交回答
  • 程序就是我的人生!
    谢谢分享,辛苦啦
    2017-06-02 16:27:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
高精度北斗 定位IoT时代 立即下载
⾼精度北⽃ 定位IoT时代 立即下载
共建行业标准,打造共赢生态——智能物联标准白皮书发布及IoT合作伙伴计划落地介 立即下载