设备通信

PHP SDK中的类ACBindMgr定义了方法sendToDevice用于向设备发送指令。该方法的使用示例如下:

// 实例化ACBindMgr对象
$bindMgr = ACClient::getBindMgr();
// 向设备发送消息
// 参数$subDomain是目标设备在AbleCloud平台上所属子域的名字。
// 参数$messageCode是整数,表示发送给设备的消息的码。
// 参数$message是拟发送给设备的二进制数据。
// 参数'weixin'用于表示用户用来控制设备的终端工具是微信。
// 参数值'6.2.1'描述的是微信的版本信息。
$response = $bindMgr->sendToDevice($user, $deviceId, $subDomain, $messageCode, $message, 'weixin', '6.2.1');
// 其它处理逻辑

上例中,调用方法sendToDevice时使用的第六及第七个参数分别用于表示调用本方法时用户所使用的终端工具的名字及版本。如'weixin'表示用户使用的是微信终端;而'6.2.1'是指该工具的版本信息。

此外,也可通过ACContext来设置用户使用的终端工具的信息。如下例:

// 实例化ACBindMgr对象
$bindMgr = ACClient::getBindMgr();
// 通过ACContext设置终端工具的信息
$context = $bindMgr->getContext();
$context->setHandset('weixin', '6.2.1', '', 'android');
// 向设备发送消息:省略最后两个参数。
$response = $bindMgr->sendToDevice($user, $deviceId, $subDomain, $messageCode, $message);

注:ACBindMgr::sendToService目前仅支持向设备发送二进制格式的数据,而不支持JSON格式的数据。