去 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