当前位置: 首页 > 知识库问答 >
问题:

用PHP实现MQTT客户端连接MQTT代理

萧建木
2023-03-14

我是PHP领域的新手,在连接到MQTT时遇到了一些问题。

错误为:stream_socket_client():无法连接到TCP://...*:8083(连接超时)

在下面的代码中面临问题:

if ($this->cafile) {
            $socketContext = stream_context_create(["ssl" => [
                "verify_peer_name" => true,
                "cafile" => $this->cafile
                ]]);
            $this->socket = stream_socket_client("tls://" . $this->address . ":" . $this->port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $socketContext);
        } else {
            $this->socket = stream_socket_client("tcp://" . $this->address . ":" . $this->port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT);
        }

共有1个答案

洪弘壮
2023-03-14

在phpmqtt.php库
(源代码位于https://github.com/bluerhinos/phpmqtt/blob/master/phpmqtt.php)
中,您必须设置以下细节,如源代码所示。

/* sets the broker details */  

function broker($address, $port, $clientid, $cafile = NULL){
    $this->address = $address;
    $this->port = $port;
    $this->clientid = $clientid;
    $this->cafile = $cafile;
}

如果你有一个防火墙运行-一定要打开你正在使用的端口。

 类似资料:
  • 我如何用C#将消息发布到外部托管的MQTT代理(在我的例子中是VirtualBox--在openwrt之上)?

  • 我在artemis代理中添加了一个mqtt拦截器,以便拦截mqtt客户端连接: 我的客户端apache paho通过这个端口“WS://0.0.0.0:61614”连接到代理。 我的问题是只截获发布到主题的消息。 为什么不截获连接消息?

  • 安装:composer require imiphp/imi-mqtt 项目配置文件: [ 'components' => [ 'MQTT' => 'Imi\MQTT', ], ] MQTT 功能要求 PHP >= 7.2 使用 事件监听类: <?php namespace Imi\MQTT\Test; use Imi\MQTT\Client\Con

  • 本文向大家介绍python mqtt 客户端的实现代码实例,包括了python mqtt 客户端的实现代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python mqtt 客户端代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装paho-mqtt python消息收发实现 以上就是本文的全部内容,希望对大家的学习有

  • 下面是我在代码中所做的: keystore中的证书没有读取并给我IoException。

  • null 当MQTT代理变得不可用时,Paho MQTT客户机不能帮助我保证这些QoS2级别的消息将被重新传递,这是正确的说法吗? 因此,我如何区分以下情况,即Client.Publish导致了一个MqttException,其中Paho没有将消息持久化。 下面是它在飞行中坚持的地方 null 连接丢失(32109):PAHO保存消息 客户端当前正在断开连接(32102):PAHO丢失消息 等待服