oliverlorenz/php-mqtt-client

PHP的MQTT客户端库

0.5 2018-11-07 16:43 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:47:09 UTC


README

phpMqttClient 是一个PHP的MQTT客户端库。它基于reactPHP的socket-client,并添加了MQTT协议特定的功能。希望它能成为现有PHP MQTT库的一个更好的起点。

Build Status Code Climate Test Coverage

目标

本项目的目标是提供一个易于使用的PHP MQTT客户端,该客户端在现代架构中无需使用任何PHP模块。目前,仅实现了协议版本4(MQTT 3.1.1)。

示例发布

$config = require 'config.php';

$connector = ClientFactory::createClient(new Version4());

$p = $connector->create($config['server'], $config['port'], $config['options']);
$p->then(function(Stream $stream) use ($connector) {
    return $connector->publish($stream, 'a/b', 'example message');
});
$connector->getLoop()->run();

示例订阅

$config = require 'config.php';

$connector = ClientFactory::createClient(new Version4());

$p = $connector->create($config['server'], $config['port'], $config['options']);
$p->then(function(\React\Stream\Stream $stream) use ($connector) {
    $stream->on(Publish::EVENT, function(Publish $message) {
        print_r($message);
    });
    
    $connector->subscribe($stream, 'a/b', 0);
    $connector->subscribe($stream, 'a/c', 0);
});

$connector->getLoop()->run();

注意 - (2015年5月12日)

这个库目前不稳定。它处于早期阶段,但我正在努力改进。如果需要更多功能,我会添加。如果您需要功能:请提供反馈或贡献以使此库运行。

当前功能

  • 连接(清除会话,无其他连接标志)
  • 断开连接
  • 发布
  • 订阅

运行测试

./vendor/bin/phpunit -c ./tests/phpunit.xml ./tests

故障排除

为什么连接到localhost:1883不工作?

答案很简单:示例中配置了DNS 8.8.8.8。您的本地服务器对它们不可见,因此您无法连接。