给某个连接设备推流

在MQTT的控制器中,我们可以使用$this->send(FD标识符, 推送内容)方法,对某个客户端设备进行消息推送。
该方法的返回值是一个Bool值。

注意:参数2,推送内容是一个多维数组,其中type参数,必须读取\x\mqtt\common\Tyeps消息事件类中的标识符,否则消息将可能发送失败。

具体的使用案例,参考如下:

namespace app\mqtt\system;
use x\mqtt\Controller;
// 引入MQTT消息标识符类
use x\mqtt\common\Tyeps;

class index extends Controller {
    
    public function run() {
        $data = $this->getData();
        // 给当前请求推送一条消息回去
        $this->send($this->getFd(), [
                'type' => Types::PUBLISH,
                'topic' => $data['topic'],
                'message' => $data['message'],
                'dup' => $data['dup'],
                'qos' => $data['qos'],
                'retain' => $data['retain'],
                'message_id' => $data['message_id'] ?? '',
            ]
        );
    }
}

注意:在Types::PUBLISH中,message字段为客户端接受到的消息内容主体。