通过php中的mqtt发送字节数组

时间:2017-06-17 08:04:48

标签: php arrays mqtt

我有一个服务(node.js),我通过mqtt接收一个字节数组。类似的东西:

170617095900 .... 每个字节都是:+年,月,日,小时,分钟,秒....

我从arduino得到这个,它工作正常。我想开发类似从php到mqtt的东西,以同样的方式发送另一条消息。

我将php中的所有数据都放在一个数组中,其中每个位置都是一个值[17,6,17,9,59,0,...]

我试图通过phpMQTT库发送这个数组:

if ($mqtt->connect()) {
    $mqtt->publish($topic, $message, 0, 1);
    $mqtt->close();
}

但我不能。我只是可以发送字符串。所以我尝试通过以下方式连接数组的每个位置:

$message .= $mes[i]
...

但我得到的是ascii而不是小数的值。我的意思是,我得到一个十六进制为1,另一个得到7,依此类推。

有没有办法可以通过php中的mqtt发送一个字节数组,或者我应该将这部分移动到节点?

1 个答案:

答案 0 :(得分:0)

使用PHP ord函数将字符串转换为字节数组。

http://ca.php.net/ord

$fix = [];
for($i = 0; $i < strlen($message); $i++) {
    $fix[$i] = ord($message[$i]);
}

$ fix现在将包含字节数组。