比如,向物联网设备发送“获取参数”指令,并返回参数
一个比较简单的方法,用gatewayClient 给设备发指令,设备返回指令结果,gatewayWorker的onMessage里接收结果并存入数据库,web端定时读下数据库,得到结果。
数据库也可以采用redis,利用redis的 publish 和subscribe,这样更实时一些。 web端代码类似:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); Gateway::$registerAddress = 'xxx:xx'; Gateway::sendToUid(设备id, '命令数据'); $redis->subscribe(设备id, function($instance, $channelName, $message) { var_export($message); die; };
gatewayWorker 里的events.php 代码类似
class Events { public static function onWorkerStart() { global $redis; $redis = new Redis(); $redis->connect('127.0.0.1', 6379); } public static function onMessage() { // 收到设备返回的消息 $redis->publish(设备id, '设备返回的消息'); } }
哇,这方法很好,谢谢了
学习了。谢谢。
一个比较简单的方法,用gatewayClient 给设备发指令,设备返回指令结果,gatewayWorker的onMessage里接收结果并存入数据库,web端定时读下数据库,得到结果。
数据库也可以采用redis,利用redis的 publish 和subscribe,这样更实时一些。
web端代码类似:
gatewayWorker 里的events.php 代码类似
哇,这方法很好,谢谢了
学习了。谢谢。