2019-09-15 23:12:38 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
2021-01-06 00:05:06 +08:00
|
|
|
use PhpMqtt\Client\MqttClient;
|
2019-09-16 03:41:06 +08:00
|
|
|
use PhpMqtt\Client\Repositories\MemoryRepository;
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| Default MQTT Connection
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
| This setting defines the default MQTT connection returned when requesting
|
|
|
|
| a connection without name from the facade.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
'default_connection' => 'default',
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| MQTT Connections
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
| These are the MQTT connections used by the application. You can also open
|
|
|
|
| an individual connection from the application itself, but all connections
|
|
|
|
| defined here can be accessed via name conveniently.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
'connections' => [
|
2021-01-06 00:05:06 +08:00
|
|
|
|
2019-09-16 03:41:06 +08:00
|
|
|
'default' => [
|
2021-01-06 00:05:06 +08:00
|
|
|
|
|
|
|
// The host and port to which the client shall connect.
|
2019-09-16 03:41:06 +08:00
|
|
|
'host' => env('MQTT_HOST'),
|
|
|
|
'port' => env('MQTT_PORT', 1883),
|
2021-01-06 00:05:06 +08:00
|
|
|
|
|
|
|
// The MQTT protocol version used for the connection.
|
|
|
|
'protocol' => MqttClient::MQTT_3_1,
|
|
|
|
|
|
|
|
// A specific client id to be used for the connection. If omitted,
|
|
|
|
// a random client id will be generated for each new connection.
|
2019-09-16 03:41:06 +08:00
|
|
|
'client_id' => env('MQTT_CLIENT_ID'),
|
2021-01-06 00:05:06 +08:00
|
|
|
|
|
|
|
// Whether a clean session shall be used and requested by the client.
|
|
|
|
// A clean session will let the broker forget about subscriptions and
|
|
|
|
// queued messages when the client disconnects. Also, if available,
|
|
|
|
// data of a previous session will be deleted when connecting.
|
|
|
|
'use_clean_session' => env('MQTT_CLEAN_SESSION', true),
|
|
|
|
|
|
|
|
// Whether logging shall be enabled. The default logger will be used
|
|
|
|
// with the log level as configured.
|
|
|
|
'enable_logging' => env('MQTT_ENABLE_LOGGING', true),
|
|
|
|
|
2023-05-16 02:04:29 +08:00
|
|
|
// Which logging channel to use for logs produced by the MQTT client.
|
|
|
|
// If left empty, the default log channel or stack is being used.
|
|
|
|
'log_channel' => env('MQTT_LOG_CHANNEL', null),
|
|
|
|
|
2021-01-06 00:05:06 +08:00
|
|
|
// Defines which repository implementation shall be used. Currently,
|
|
|
|
// only a MemoryRepository is supported.
|
2019-09-16 03:41:06 +08:00
|
|
|
'repository' => MemoryRepository::class,
|
2021-01-06 00:05:06 +08:00
|
|
|
|
|
|
|
// Additional settings used for the connection to the broker.
|
|
|
|
// All of these settings are entirely optional and have sane defaults.
|
|
|
|
'connection_settings' => [
|
|
|
|
|
|
|
|
// The TLS settings used for the connection. Must match the specified port.
|
|
|
|
'tls' => [
|
|
|
|
'enabled' => env('MQTT_TLS_ENABLED', false),
|
|
|
|
'allow_self_signed_certificate' => env('MQTT_TLS_ALLOW_SELF_SIGNED_CERT', false),
|
|
|
|
'verify_peer' => env('MQTT_TLS_VERIFY_PEER', true),
|
|
|
|
'verify_peer_name' => env('MQTT_TLS_VERIFY_PEER_NAME', true),
|
|
|
|
'ca_file' => env('MQTT_TLS_CA_FILE'),
|
|
|
|
'ca_path' => env('MQTT_TLS_CA_PATH'),
|
|
|
|
'client_certificate_file' => env('MQTT_TLS_CLIENT_CERT_FILE'),
|
|
|
|
'client_certificate_key_file' => env('MQTT_TLS_CLIENT_CERT_KEY_FILE'),
|
|
|
|
'client_certificate_key_passphrase' => env('MQTT_TLS_CLIENT_CERT_KEY_PASSPHRASE'),
|
|
|
|
],
|
|
|
|
|
|
|
|
// Credentials used for authentication and authorization.
|
|
|
|
'auth' => [
|
|
|
|
'username' => env('MQTT_AUTH_USERNAME'),
|
|
|
|
'password' => env('MQTT_AUTH_PASSWORD'),
|
|
|
|
],
|
|
|
|
|
|
|
|
// Can be used to declare a last will during connection. The last will
|
|
|
|
// is published by the broker when the client disconnects abnormally
|
|
|
|
// (e.g. in case of a disconnect).
|
|
|
|
'last_will' => [
|
|
|
|
'topic' => env('MQTT_LAST_WILL_TOPIC'),
|
|
|
|
'message' => env('MQTT_LAST_WILL_MESSAGE'),
|
|
|
|
'quality_of_service' => env('MQTT_LAST_WILL_QUALITY_OF_SERVICE', 0),
|
|
|
|
'retain' => env('MQTT_LAST_WILL_RETAIN', false),
|
|
|
|
],
|
|
|
|
|
|
|
|
// The timeouts (in seconds) used for the connection. Some of these settings
|
|
|
|
// are only relevant when using the event loop of the MQTT client.
|
|
|
|
'connect_timeout' => env('MQTT_CONNECT_TIMEOUT', 60),
|
|
|
|
'socket_timeout' => env('MQTT_SOCKET_TIMEOUT', 5),
|
2019-09-16 03:41:06 +08:00
|
|
|
'resend_timeout' => env('MQTT_RESEND_TIMEOUT', 10),
|
2021-01-06 00:05:06 +08:00
|
|
|
|
|
|
|
// The interval (in seconds) in which the client will send a ping to the broker,
|
|
|
|
// if no other message has been sent.
|
|
|
|
'keep_alive_interval' => env('MQTT_KEEP_ALIVE_INTERVAL', 10),
|
2022-11-23 05:26:38 +08:00
|
|
|
|
|
|
|
// Additional settings for the optional auto-reconnect. The delay between reconnect attempts is in seconds.
|
|
|
|
'auto_reconnect' => [
|
|
|
|
'enabled' => env('MQTT_AUTO_RECONNECT_ENABLED', false),
|
|
|
|
'max_reconnect_attempts' => env('MQTT_AUTO_RECONNECT_MAX_RECONNECT_ATTEMPTS', 3),
|
|
|
|
'delay_between_reconnect_attempts' => env('MQTT_AUTO_RECONNECT_DELAY_BETWEEN_RECONNECT_ATTEMPTS', 0),
|
|
|
|
],
|
|
|
|
|
2019-09-16 03:41:06 +08:00
|
|
|
],
|
2021-01-06 00:05:06 +08:00
|
|
|
|
2019-09-16 03:41:06 +08:00
|
|
|
],
|
2021-01-06 00:05:06 +08:00
|
|
|
|
2019-09-16 03:41:06 +08:00
|
|
|
],
|
|
|
|
|
|
|
|
];
|