mqtt 使用及laravel集成MQTT

本文档介绍了如何在Mac环境下下载和安装开源MQTT Broker EMQX,以及在Laravel项目中集成phpMQTT库,实现MQTT消息的发布和订阅。首先,通过wget下载并解压EMQX,然后启动服务。接着,在Laravel中通过composer安装phpMQTT,配置.env文件,并创建控制器方法以发送和接收MQTT消息。示例代码展示了如何连接到MQTT服务器,发布和订阅主题。
摘要由CSDN通过智能技术生成

去   EMQX: Open-Source, Cloud-Native MQTT Broker for IoT

下载和安装服务端和客户端 客户端为了看着方便

本人是mac 所以下载的是

1. 下载 emqx-4.4.3-otp24.1.5-3-macos10-amd64.zipSHA256

wget https://www.emqx.com/zh/downloads/broker/4.4.3/emqx-4.4.3-otp24.1.5-3-macos10-amd64.zip

没有安装wget  浏览器下载亦可

2. 安装

unzip emqx-4.4.3-otp24.1.5-3-macos10-amd64.zip

3. 切换进目录运行

./bin/emqx start

会看到  

!!!!
!!!! WARNING: ulimit -n is 256; 1024 is the recommended minimum.
!!!!
EMQ X Broker 4.4.3 is started successfully!

官网有各种系统版本 甚至有docker 版 ,用着太爽了

官网还有客户端  还要文档 自己看就行了 文档相当详细

在laravel下安装第三方插件

composer require bluerhinos/phpmqtt=@dev

修改.env

#MQTT
MQTT_HOST=127.0.0.1
MQTT_PORT=1883
MQTT_ADMIN=xxx
MQTT_PASSWORD=xxxxxx

测试 发布消息

<?php

namespace App\Http\Controllers\Tc;

use Bluerhinos\phpMQTT;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Config;


class RemoteController extends Controller
{

    public function sendEmqxMsg(Request $request)
    {
        //send mqtt msg
        $server = env('MQTT_HOST','');
        $port = env('MQTT_PORT','1883');
        $username = env('MQTT_ADMIN','');
        $password = env('MQTT_PASSWORD','');
        $client_id = uniqid('mqtt_');
        $mqtt = new phpMQTT($server, $port, $client_id);

        $topic = "local-testtopic";
        $msg = json_encode(["msg"=>"I'am larance"]);

        //如果创建链接成功
        if ($mqtt->connect(true, NULL, $username, $password)) {
            // qos = 0:仅发一次,不管是否能收到
            // qos = 1:没返回一直发,可能有重复接收
            // qos = 2:保证必须收到,并且不重复
            $res = $mqtt->publish($topic,  $msg, 0);
            $mqtt->close();    //发送后关闭链接
        } else {
            echo json_encode($mqtt,'320');
           // Log::debug(json_encode($mqtt,'320'));
        }
    }

测试订阅并接收消息

  public function subsribeAndWiteEmqxMsg(Request $request){
        //receive mqtt msg
        $server = env('MQTT_HOST','');
        $port = env('MQTT_PORT','1883');
        $username = env('MQTT_ADMIN','');
        $password = env('MQTT_PASSWORD','');
        $client_id = uniqid('mqtt_');
        $mqtt = new phpMQTT($server, $port, $client_id);
        if(!$mqtt->connect(true, NULL, $username, $password)) {
            exit(1);
        }
        $mqtt->debug = true;

        echo $mqtt->subscribeAndWaitForMessage('local-testtopic', 0);
        $mqtt->close();

    }

更详细 使用 参照 GitHub - bluerhinos/phpMQTT: a simple php class to connect/publish/subscribe to a MQTT broker

其他 http://t.zoukankan.com/richerdyoung-p-10113744.html 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

larance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值