forked from espressif/esp-idf
		
	
		
			
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 
								 | 
							
								ESP WebSocket Client
							 | 
						||
| 
								 | 
							
								====================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Overview
							 | 
						||
| 
								 | 
							
								--------
							 | 
						||
| 
								 | 
							
								The ESP WebSocket client is an implementation of `WebSocket protocol client <https://tools.ietf.org/html/rfc6455>`_ for ESP32
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Features
							 | 
						||
| 
								 | 
							
								--------
							 | 
						||
| 
								 | 
							
								   * supports WebSocket over TCP, SSL with mbedtls
							 | 
						||
| 
								 | 
							
								   * Easy to setup with URI
							 | 
						||
| 
								 | 
							
								   * Multiple instances (Multiple clients in one application)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Configuration
							 | 
						||
| 
								 | 
							
								-------------
							 | 
						||
| 
								 | 
							
								URI
							 | 
						||
| 
								 | 
							
								^^^
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-  Supports ``ws``, ``wss`` schemes
							 | 
						||
| 
								 | 
							
								-  WebSocket samples:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   -  ``ws://websocket.org``: WebSocket over TCP, default port 80
							 | 
						||
| 
								 | 
							
								   -  ``wss://websocket.org``: WebSocket over SSL, default port 443
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								-  Minimal configurations:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.. code:: c
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const esp_websocket_client_config_t ws_cfg = {
							 | 
						||
| 
								 | 
							
								        .uri = "ws://websocket.org",
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-  If there are any options related to the URI in
							 | 
						||
| 
								 | 
							
								   ``esp_websocket_client_config_t``, the option defined by the URI will be
							 | 
						||
| 
								 | 
							
								   overridden. Sample:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.. code:: c
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const esp_websocket_client_config_t ws_cfg = {
							 | 
						||
| 
								 | 
							
								        .uri = "ws://websocket.org:123",
							 | 
						||
| 
								 | 
							
								        .port = 4567,
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    //WebSocket client will connect to websocket.org using port 4567
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SSL
							 | 
						||
| 
								 | 
							
								^^^
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-  Get certificate from server, example: ``websocket.org``
							 | 
						||
| 
								 | 
							
								   ``openssl s_client -showcerts -connect websocket.org:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >websocket_org.pem``
							 | 
						||
| 
								 | 
							
								-  Configuration:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.. code:: cpp
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const esp_websocket_client_config_t ws_cfg = {
							 | 
						||
| 
								 | 
							
								        .uri = "wss://websocket.org",
							 | 
						||
| 
								 | 
							
								        .cert_pem = (const char *)websocket_org_pem_start,
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For more options on ``esp_websocket_client_config_t``, please refer to API reference below
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Application Example
							 | 
						||
| 
								 | 
							
								-------------------
							 | 
						||
| 
								 | 
							
								Simple WebSocket example that uses esp_websocket_client to establish a websocket connection and send/receive data with the `websocket.org <https://websocket.org>`_ Server: :example:`protocols/websocket`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								API Reference
							 | 
						||
| 
								 | 
							
								-------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.. include:: /_build/inc/esp_websocket_client.inc
							 | 
						||
| 
								 | 
							
								
							 |