首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel后台运行MQTT订阅

如何在Laravel后台运行MQTT订阅
EN

Stack Overflow用户
提问于 2022-05-05 14:20:43
回答 1查看 546关注 0票数 1

我正在尝试将MQTT订阅到一个保存在数据库中的作业中,但我得到了一个错误消息,即该作业失败了,而不是运行了无限时间。我想知道我的方法是否可行,是否有更好的办法来解决我的问题。

我的代码

代码语言:javascript
复制
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use PhpMqtt\Client\Facades\MQTT;

class StartSub implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct()
    {
        //
    }

    public function handle()
    {
        $mqtt = MQTT::connection();
        $mqtt->subscribe('topic', function (string $topic, string $message) {
            echo sprintf('Received QoS level 1 message on topic [%s]: %s',
                $topic, $message);
        }, 1);
        $mqtt->loop(true);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-05 20:46:58

答案很简单。虽然我不知道这是否100%正确。经过进一步的调查,我发现我的代码因为超时而失败了。所以我只需要放一个public $timeout = 0;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72128780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档