— 本帖被 不靠谱贝贝 从 物联网架构交流 移动到本区(2017-06-19) —
上一篇文章,介绍了了如何模拟设备上线,这回我们介绍下如何模拟设备向服务端发送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文件,这样在浏览器就可以查看我们上传的消息了。
‘.$inputv.'”;’.”\r\n?>\r\n