Merge branch 'bugfix/mqtt_example_url_update' into 'master'
MQTT: update default broker URL for examples Closes IDF-1052 See merge request espressif/esp-idf!6214
This commit is contained in:
commit
42e59c317a
26 changed files with 54 additions and 56 deletions
|
@ -80,13 +80,12 @@ def test_single_config(dut, transport, qos, repeat, published):
|
||||||
try:
|
try:
|
||||||
if transport in ["ws", "wss"]:
|
if transport in ["ws", "wss"]:
|
||||||
client = mqtt.Client(transport="websockets")
|
client = mqtt.Client(transport="websockets")
|
||||||
client.ws_set_options(path="/ws", headers=None)
|
|
||||||
else:
|
else:
|
||||||
client = mqtt.Client()
|
client = mqtt.Client()
|
||||||
client.on_connect = on_connect
|
client.on_connect = on_connect
|
||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
if transport in ["ssl", "wss"]:
|
if transport in ["ssl", "wss"]:
|
||||||
client.tls_set(None, None, None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1, ciphers=None)
|
client.tls_set(None, None, None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
|
||||||
client.tls_insecure_set(True)
|
client.tls_insecure_set(True)
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
client.connect(broker_host[transport], broker_port[transport], 60)
|
client.connect(broker_host[transport], broker_port[transport], 60)
|
||||||
|
|
|
@ -32,30 +32,30 @@ URI
|
||||||
- Curently support ``mqtt``, ``mqtts``, ``ws``, ``wss`` schemes
|
- Curently support ``mqtt``, ``mqtts``, ``ws``, ``wss`` schemes
|
||||||
- MQTT over TCP samples:
|
- MQTT over TCP samples:
|
||||||
|
|
||||||
- ``mqtt://iot.eclipse.org``: MQTT over TCP, default port 1883:
|
- ``mqtt://mqtt.eclipse.org``: MQTT over TCP, default port 1883:
|
||||||
- ``mqtt://iot.eclipse.org:1884`` MQTT over TCP, port 1884:
|
- ``mqtt://mqtt.eclipse.org:1884`` MQTT over TCP, port 1884:
|
||||||
- ``mqtt://username:password@iot.eclipse.org:1884`` MQTT over TCP,
|
- ``mqtt://username:password@mqtt.eclipse.org:1884`` MQTT over TCP,
|
||||||
port 1884, with username and password
|
port 1884, with username and password
|
||||||
|
|
||||||
- MQTT over SSL samples:
|
- MQTT over SSL samples:
|
||||||
|
|
||||||
- ``mqtts://iot.eclipse.org``: MQTT over SSL, port 8883
|
- ``mqtts://mqtt.eclipse.org``: MQTT over SSL, port 8883
|
||||||
- ``mqtts://iot.eclipse.org:8884``: MQTT over SSL, port 8884
|
- ``mqtts://mqtt.eclipse.org:8884``: MQTT over SSL, port 8884
|
||||||
|
|
||||||
- MQTT over Websocket samples:
|
- MQTT over Websocket samples:
|
||||||
|
|
||||||
- ``ws://iot.eclipse.org:80/ws``
|
- ``ws://mqtt.eclipse.org:80/mqtt``
|
||||||
|
|
||||||
- MQTT over Websocket Secure samples:
|
- MQTT over Websocket Secure samples:
|
||||||
|
|
||||||
- ``wss://iot.eclipse.org:443/ws``
|
- ``wss://mqtt.eclipse.org:443/mqtt``
|
||||||
|
|
||||||
- Minimal configurations:
|
- Minimal configurations:
|
||||||
|
|
||||||
.. code:: c
|
.. code:: c
|
||||||
|
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.uri = "mqtt://iot.eclipse.org",
|
.uri = "mqtt://mqtt.eclipse.org",
|
||||||
// .user_context = (void *)your_context
|
// .user_context = (void *)your_context
|
||||||
};
|
};
|
||||||
esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);
|
esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);
|
||||||
|
@ -71,25 +71,25 @@ URI
|
||||||
.. code:: c
|
.. code:: c
|
||||||
|
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.uri = "mqtt://iot.eclipse.org:1234",
|
.uri = "mqtt://mqtt.eclipse.org:1234",
|
||||||
.port = 4567,
|
.port = 4567,
|
||||||
};
|
};
|
||||||
//MQTT client will connect to iot.eclipse.org using port 4567
|
//MQTT client will connect to mqtt.eclipse.org using port 4567
|
||||||
|
|
||||||
SSL
|
SSL
|
||||||
^^^
|
^^^
|
||||||
|
|
||||||
- Get certificate from server, example: ``iot.eclipse.org``
|
- Get certificate from server, example: ``mqtt.eclipse.org``
|
||||||
``openssl s_client -showcerts -connect iot.eclipse.org:8883 </dev/null 2>/dev/null|openssl x509 -outform PEM >iot_eclipse_org.pem``
|
``openssl s_client -showcerts -connect mqtt.eclipse.org:8883 </dev/null 2>/dev/null|openssl x509 -outform PEM >mqtt_eclipse_org.pem``
|
||||||
- Check the sample application: ``examples/mqtt_ssl``
|
- Check the sample application: ``examples/mqtt_ssl``
|
||||||
- Configuration:
|
- Configuration:
|
||||||
|
|
||||||
.. code:: cpp
|
.. code:: cpp
|
||||||
|
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.uri = "mqtts://iot.eclipse.org:8883",
|
.uri = "mqtts://mqtt.eclipse.org:8883",
|
||||||
.event_handle = mqtt_event_handler,
|
.event_handle = mqtt_event_handler,
|
||||||
.cert_pem = (const char *)iot_eclipse_org_pem_start,
|
.cert_pem = (const char *)mqtt_eclipse_org_pem_start,
|
||||||
};
|
};
|
||||||
|
|
||||||
For more options on ``esp_mqtt_client_config_t``, please refer to API reference below
|
For more options on ``esp_mqtt_client_config_t``, please refer to API reference below
|
||||||
|
|
|
@ -10,4 +10,4 @@ include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
|
||||||
project(mqtt_publish)
|
project(mqtt_publish)
|
||||||
|
|
||||||
target_add_binary_data(mqtt_publish.elf "main/iot_eclipse_org.pem" TEXT)
|
target_add_binary_data(mqtt_publish.elf "main/mqtt_eclipse_org.pem" TEXT)
|
||||||
|
|
|
@ -2,25 +2,25 @@ menu "Example Configuration"
|
||||||
|
|
||||||
config EXAMPLE_BROKER_SSL_URI
|
config EXAMPLE_BROKER_SSL_URI
|
||||||
string "Broker SSL URL"
|
string "Broker SSL URL"
|
||||||
default "mqtts://iot.eclipse.org:8883"
|
default "mqtts://mqtt.eclipse.org:8883"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker for ssl transport
|
URL of an mqtt broker for ssl transport
|
||||||
|
|
||||||
config EXAMPLE_BROKER_TCP_URI
|
config EXAMPLE_BROKER_TCP_URI
|
||||||
string "Broker TCP URL"
|
string "Broker TCP URL"
|
||||||
default "mqtt://iot.eclipse.org:1883"
|
default "mqtt://mqtt.eclipse.org:1883"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker for tcp transport
|
URL of an mqtt broker for tcp transport
|
||||||
|
|
||||||
config EXAMPLE_BROKER_WS_URI
|
config EXAMPLE_BROKER_WS_URI
|
||||||
string "Broker WS URL"
|
string "Broker WS URL"
|
||||||
default "ws://iot.eclipse.org:80/ws"
|
default "ws://mqtt.eclipse.org:80/mqtt"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker for ws transport
|
URL of an mqtt broker for ws transport
|
||||||
|
|
||||||
config EXAMPLE_BROKER_WSS_URI
|
config EXAMPLE_BROKER_WSS_URI
|
||||||
string "Broker WSS URL"
|
string "Broker WSS URL"
|
||||||
default "wss://iot.eclipse.org:443/ws"
|
default "wss://mqtt.eclipse.org:443/mqtt"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker for wss transport
|
URL of an mqtt broker for wss transport
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
COMPONENT_EMBED_TXTFILES := iot_eclipse_org.pem
|
COMPONENT_EMBED_TXTFILES := mqtt_eclipse_org.pem
|
||||||
|
|
|
@ -46,11 +46,11 @@ static int qos_test = 0;
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_EXAMPLE_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
#if CONFIG_EXAMPLE_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
||||||
static const uint8_t iot_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_EXAMPLE_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
static const uint8_t mqtt_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_EXAMPLE_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
||||||
#else
|
#else
|
||||||
extern const uint8_t iot_eclipse_org_pem_start[] asm("_binary_iot_eclipse_org_pem_start");
|
extern const uint8_t mqtt_eclipse_org_pem_start[] asm("_binary_mqtt_eclipse_org_pem_start");
|
||||||
#endif
|
#endif
|
||||||
extern const uint8_t iot_eclipse_org_pem_end[] asm("_binary_iot_eclipse_org_pem_end");
|
extern const uint8_t mqtt_eclipse_org_pem_end[] asm("_binary_mqtt_eclipse_org_pem_end");
|
||||||
|
|
||||||
static esp_err_t mqtt_event_handler(esp_mqtt_event_handle_t event)
|
static esp_err_t mqtt_event_handler(esp_mqtt_event_handle_t event)
|
||||||
{
|
{
|
||||||
|
@ -127,7 +127,7 @@ static void mqtt_app_start(void)
|
||||||
mqtt_event_group = xEventGroupCreate();
|
mqtt_event_group = xEventGroupCreate();
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.event_handle = mqtt_event_handler,
|
.event_handle = mqtt_event_handler,
|
||||||
.cert_pem = (const char *)iot_eclipse_org_pem_start,
|
.cert_pem = (const char *)mqtt_eclipse_org_pem_start,
|
||||||
};
|
};
|
||||||
|
|
||||||
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
||||||
|
|
|
@ -9,4 +9,4 @@ set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_exam
|
||||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
project(mqtt_ssl)
|
project(mqtt_ssl)
|
||||||
|
|
||||||
target_add_binary_data(mqtt_ssl.elf "main/iot_eclipse_org.pem" TEXT)
|
target_add_binary_data(mqtt_ssl.elf "main/mqtt_eclipse_org.pem" TEXT)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
||||||
|
|
||||||
This example connects to the broker iot.eclipse.org using ssl transport and as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
This example connects to the broker mqtt.eclipse.org using ssl transport and as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
||||||
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
||||||
|
|
||||||
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
||||||
|
@ -19,13 +19,13 @@ This example can be executed on any ESP32 board, the only required interface is
|
||||||
* Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details.
|
* Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details.
|
||||||
* When using Make build system, set `Default serial port` under `Serial flasher config`.
|
* When using Make build system, set `Default serial port` under `Serial flasher config`.
|
||||||
|
|
||||||
PEM certificate for this example could be extracted from an openssl `s_client` command connecting to iot.eclipse.org.
|
PEM certificate for this example could be extracted from an openssl `s_client` command connecting to mqtt.eclipse.org.
|
||||||
In case a host operating system has `openssl` and `sed` packages installed, one could execute the following command to download and save the root certificate to a file (Note for Windows users: Both Linux like environment or Windows native packages may be used).
|
In case a host operating system has `openssl` and `sed` packages installed, one could execute the following command to download and save the root certificate to a file (Note for Windows users: Both Linux like environment or Windows native packages may be used).
|
||||||
```
|
```
|
||||||
echo "" | openssl s_client -showcerts -connect iot.eclipse.org:8883 | sed -n "1,/Root/d; /BEGIN/,/END/p" | openssl x509 -outform PEM >iot_eclipse_org.pem
|
echo "" | openssl s_client -showcerts -connect mqtt.eclipse.org:8883 | sed -n "1,/Root/d; /BEGIN/,/END/p" | openssl x509 -outform PEM >mqtt_eclipse_org.pem
|
||||||
```
|
```
|
||||||
Please note that this is not a general command for downloading a root certificate for an arbitrary host;
|
Please note that this is not a general command for downloading a root certificate for an arbitrary host;
|
||||||
this command works with iot.eclipse.org as the site provides root certificate in the chain, which then could be extracted
|
this command works with mqtt.eclipse.org as the site provides root certificate in the chain, which then could be extracted
|
||||||
with text operation.
|
with text operation.
|
||||||
|
|
||||||
### Build and Flash
|
### Build and Flash
|
||||||
|
|
|
@ -2,7 +2,7 @@ menu "Example Configuration"
|
||||||
|
|
||||||
config BROKER_URI
|
config BROKER_URI
|
||||||
string "Broker URL"
|
string "Broker URL"
|
||||||
default "mqtts://iot.eclipse.org:8883"
|
default "mqtts://mqtt.eclipse.org:8883"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker which this example connects to.
|
URL of an mqtt broker which this example connects to.
|
||||||
|
|
||||||
|
|
|
@ -35,11 +35,11 @@ static const char *TAG = "MQTTS_EXAMPLE";
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
#if CONFIG_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
||||||
static const uint8_t iot_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
static const uint8_t mqtt_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
||||||
#else
|
#else
|
||||||
extern const uint8_t iot_eclipse_org_pem_start[] asm("_binary_iot_eclipse_org_pem_start");
|
extern const uint8_t mqtt_eclipse_org_pem_start[] asm("_binary_mqtt_eclipse_org_pem_start");
|
||||||
#endif
|
#endif
|
||||||
extern const uint8_t iot_eclipse_org_pem_end[] asm("_binary_iot_eclipse_org_pem_end");
|
extern const uint8_t mqtt_eclipse_org_pem_end[] asm("_binary_mqtt_eclipse_org_pem_end");
|
||||||
|
|
||||||
static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
|
static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ static void mqtt_app_start(void)
|
||||||
{
|
{
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.uri = CONFIG_BROKER_URI,
|
.uri = CONFIG_BROKER_URI,
|
||||||
.cert_pem = (const char *)iot_eclipse_org_pem_start,
|
.cert_pem = (const char *)mqtt_eclipse_org_pem_start,
|
||||||
};
|
};
|
||||||
|
|
||||||
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
COMPONENT_EMBED_TXTFILES := iot_eclipse_org.pem
|
COMPONENT_EMBED_TXTFILES := mqtt_eclipse_org.pem
|
||||||
|
|
|
@ -87,7 +87,7 @@ def test_examples_protocol_mqtt_ssl(env, extra_data):
|
||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
client.tls_set(None,
|
client.tls_set(None,
|
||||||
None,
|
None,
|
||||||
None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1, ciphers=None)
|
None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
|
||||||
client.tls_insecure_set(True)
|
client.tls_insecure_set(True)
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
client.connect(broker_url, broker_port, 60)
|
client.connect(broker_url, broker_port, 60)
|
||||||
|
|
|
@ -2,7 +2,7 @@ menu "Example Configuration"
|
||||||
|
|
||||||
config BROKER_URL
|
config BROKER_URL
|
||||||
string "Broker URL"
|
string "Broker URL"
|
||||||
default "mqtt://iot.eclipse.org"
|
default "mqtt://mqtt.eclipse.org"
|
||||||
help
|
help
|
||||||
URL of the broker to connect to
|
URL of the broker to connect to
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
||||||
|
|
||||||
This example connects to the broker iot.eclipse.org over web sockets as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
This example connects to the broker mqtt.eclipse.org over web sockets as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
||||||
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
||||||
|
|
||||||
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
||||||
|
|
|
@ -2,7 +2,7 @@ menu "Example Configuration"
|
||||||
|
|
||||||
config BROKER_URI
|
config BROKER_URI
|
||||||
string "Broker URL"
|
string "Broker URL"
|
||||||
default "ws://iot.eclipse.org:80/ws"
|
default "ws://mqtt.eclipse.org:80/mqtt"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker which this example connects to.
|
URL of an mqtt broker which this example connects to.
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,6 @@ def test_examples_protocol_mqtt_ws(env, extra_data):
|
||||||
client = mqtt.Client(transport="websockets")
|
client = mqtt.Client(transport="websockets")
|
||||||
client.on_connect = on_connect
|
client.on_connect = on_connect
|
||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
client.ws_set_options(path="/ws", headers=None)
|
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
client.connect(broker_url, broker_port, 60)
|
client.connect(broker_url, broker_port, 60)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
|
@ -9,4 +9,4 @@ set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_exam
|
||||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
project(mqtt_websocket_secure)
|
project(mqtt_websocket_secure)
|
||||||
|
|
||||||
target_add_binary_data(mqtt_websocket_secure.elf "main/iot_eclipse_org.pem" TEXT)
|
target_add_binary_data(mqtt_websocket_secure.elf "main/mqtt_eclipse_org.pem" TEXT)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# ESP-MQTT MQTT over WSS Sample application
|
# ESP-MQTT MQTT over WSS Sample application
|
||||||
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
(See the README.md file in the upper level 'examples' directory for more information about examples.)
|
||||||
|
|
||||||
This example connects to the broker iot.eclipse.org over secure websockets and as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
This example connects to the broker mqtt.eclipse.org over secure websockets and as a demonstration subscribes/unsubscribes and send a message on certain topic.
|
||||||
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
(Please note that the public broker is maintained by the community so may not be always available, for details please see this [disclaimer](https://iot.eclipse.org/getting-started/#sandboxes))
|
||||||
|
|
||||||
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
It uses ESP-MQTT library which implements mqtt client to connect to mqtt broker.
|
||||||
|
@ -18,15 +18,15 @@ This example can be executed on any ESP32 board, the only required interface is
|
||||||
* Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details.
|
* Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details.
|
||||||
* When using Make build system, set `Default serial port` under `Serial flasher config`.
|
* When using Make build system, set `Default serial port` under `Serial flasher config`.
|
||||||
|
|
||||||
Note how to create a PEM certificate for iot.eclipse.org:
|
Note how to create a PEM certificate for mqtt.eclipse.org:
|
||||||
|
|
||||||
PEM certificate for this example could be extracted from an openssl `s_client` command connecting to iot.eclipse.org.
|
PEM certificate for this example could be extracted from an openssl `s_client` command connecting to mqtt.eclipse.org.
|
||||||
In case a host operating system has `openssl` and `sed` packages installed, one could execute the following command to download and save the root certificate to a file (Note for Windows users: Both Linux like environment or Windows native packages may be used).
|
In case a host operating system has `openssl` and `sed` packages installed, one could execute the following command to download and save the root certificate to a file (Note for Windows users: Both Linux like environment or Windows native packages may be used).
|
||||||
```
|
```
|
||||||
echo "" | openssl s_client -showcerts -connect iot.eclipse.org:443 | sed -n "1,/Root/d; /BEGIN/,/END/p" | openssl x509 -outform PEM >iot_eclipse_org.pem
|
echo "" | openssl s_client -showcerts -connect mqtt.eclipse.org:443 | sed -n "1,/Root/d; /BEGIN/,/END/p" | openssl x509 -outform PEM >mqtt_eclipse_org.pem
|
||||||
```
|
```
|
||||||
Please note that this is not a general command for downloading a root certificate for an arbitrary host;
|
Please note that this is not a general command for downloading a root certificate for an arbitrary host;
|
||||||
this command works with iot.eclipse.org as the site provides root certificate in the chain, which then could be extracted
|
this command works with mqtt.eclipse.org as the site provides root certificate in the chain, which then could be extracted
|
||||||
with text operation.
|
with text operation.
|
||||||
|
|
||||||
### Build and Flash
|
### Build and Flash
|
||||||
|
|
|
@ -2,7 +2,7 @@ menu "Example Configuration"
|
||||||
|
|
||||||
config BROKER_URI
|
config BROKER_URI
|
||||||
string "Broker URL"
|
string "Broker URL"
|
||||||
default "wss://iot.eclipse.org:443/ws"
|
default "wss://mqtt.eclipse.org:443/mqtt"
|
||||||
help
|
help
|
||||||
URL of an mqtt broker which this example connects to.
|
URL of an mqtt broker which this example connects to.
|
||||||
|
|
||||||
|
|
|
@ -33,11 +33,11 @@ static const char *TAG = "MQTTWSS_EXAMPLE";
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
#if CONFIG_BROKER_CERTIFICATE_OVERRIDDEN == 1
|
||||||
static const uint8_t iot_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
static const uint8_t mqtt_eclipse_org_pem_start[] = "-----BEGIN CERTIFICATE-----\n" CONFIG_BROKER_CERTIFICATE_OVERRIDE "\n-----END CERTIFICATE-----";
|
||||||
#else
|
#else
|
||||||
extern const uint8_t iot_eclipse_org_pem_start[] asm("_binary_iot_eclipse_org_pem_start");
|
extern const uint8_t mqtt_eclipse_org_pem_start[] asm("_binary_mqtt_eclipse_org_pem_start");
|
||||||
#endif
|
#endif
|
||||||
extern const uint8_t iot_eclipse_org_pem_end[] asm("_binary_iot_eclipse_org_pem_end");
|
extern const uint8_t mqtt_eclipse_org_pem_end[] asm("_binary_mqtt_eclipse_org_pem_end");
|
||||||
|
|
||||||
static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
|
static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +95,7 @@ static void mqtt_app_start(void)
|
||||||
{
|
{
|
||||||
const esp_mqtt_client_config_t mqtt_cfg = {
|
const esp_mqtt_client_config_t mqtt_cfg = {
|
||||||
.uri = CONFIG_BROKER_URI,
|
.uri = CONFIG_BROKER_URI,
|
||||||
.cert_pem = (const char *)iot_eclipse_org_pem_start,
|
.cert_pem = (const char *)mqtt_eclipse_org_pem_start,
|
||||||
};
|
};
|
||||||
|
|
||||||
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
COMPONENT_EMBED_TXTFILES := iot_eclipse_org.pem
|
COMPONENT_EMBED_TXTFILES := mqtt_eclipse_org.pem
|
||||||
|
|
|
@ -85,7 +85,7 @@ def test_examples_protocol_mqtt_wss(env, extra_data):
|
||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
client.tls_set(None,
|
client.tls_set(None,
|
||||||
None,
|
None,
|
||||||
None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1, ciphers=None)
|
None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
client.connect(broker_url, broker_port, 60)
|
client.connect(broker_url, broker_port, 60)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#include "sim800.h"
|
#include "sim800.h"
|
||||||
#include "bg96.h"
|
#include "bg96.h"
|
||||||
|
|
||||||
#define BROKER_URL "mqtt://iot.eclipse.org"
|
#define BROKER_URL "mqtt://mqtt.eclipse.org"
|
||||||
|
|
||||||
static const char *TAG = "pppos_example";
|
static const char *TAG = "pppos_example";
|
||||||
static EventGroupHandle_t event_group = NULL;
|
static EventGroupHandle_t event_group = NULL;
|
||||||
|
|
Loading…
Reference in a new issue