esp-idf/examples/protocols/https_server/wss_server
David Cermak 76ca826758 https_server example: Add new WSS server example
Added a new https server example with WS support which runs
* keep-alive thread to send PINGs to clients
* async message to all active WS clients
Moved the existing https-server example to a subfolder

Closes https://github.com/espressif/esp-idf/issues/5733
Closes https://github.com/espressif/esp-idf/issues/5686
2020-09-09 08:00:38 +02:00
..
main https_server example: Add new WSS server example 2020-09-09 08:00:38 +02:00
CMakeLists.txt https_server example: Add new WSS server example 2020-09-09 08:00:38 +02:00
Makefile https_server example: Add new WSS server example 2020-09-09 08:00:38 +02:00
README.md https_server example: Add new WSS server example 2020-09-09 08:00:38 +02:00
sdkconfig.defaults https_server example: Add new WSS server example 2020-09-09 08:00:38 +02:00

HTTP Websocket server with SSL support

This example creates a SSL server and employs a simple Websocket request handler. It demonstrates handling multiple clients from the server including:

  • PING-PONG mechanism
  • Sending asynchronous messages to all clients

See the esp_https_server component documentation for details.

Before using the example, open the project configuration menu (idf.py menuconfig) to configure Wi-Fi or Ethernet. See "Establishing Wi-Fi or Ethernet Connection" section in examples/protocols/README.md for more details.

Certificates

You will need to approve a security exception in your browser. This is because of a self signed certificate; this will be always the case, unless you preload the CA root into your browser/system as trusted.

You can generate a new certificate using the OpenSSL command line tool:

openssl req -newkey rsa:2048 -nodes -keyout prvtkey.pem -x509 -days 3650 -out cacert.pem -subj "/CN=ESP32 HTTPS server example"

Expiry time and metadata fields can be adjusted in the invocation.

Please see the openssl man pages (man openssl-req) for more details.

It is strongly recommended to not reuse the example certificate in your application; it is included only for demonstration.