components/websocket/README.md

branch
idf 5.1
changeset 142
1f7069278fe7
parent 141
e117e7462096
--- a/components/websocket/README.md	Mon Jul 01 08:38:57 2024 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-
-By Blake Felt - blake.w.felt@gmail.com
-
-ESP32 WebSocket
-==================
-
-A component for WebSockets on ESP-IDF using lwip netconn.
-For an example, see https://github.com/Molorius/ESP32-Examples.
-
-To add to a project, type:
-`git submodule add https://github.com/Molorius/esp32-websocket.git components/websocket`
-into the base directory of your project.
-
-Some configuration options for the Server can be found in menuconfig in:
-Component config ---> WebSocket Server
-
-This presently only has the WebSocket server code working, but client code will be added in the future (the groundwork is there).
-
-The code only allows one WebSocket server at a time, but this merely handles all incoming reads. New connections are added externally, so this can be used to hold various WebSocket connections.
-
-While this can theoretically handle very large messages, hardware constraints (RAM) limits the size of messages. I highly recommend not using more than 5000 bytes per message, but no constraint is in place for this. 
-
-Any suggestions or fixes are gladly appreciated.
-
-Table of Contents
-=================
-* [Enumerations](#enumerations)
-  * [WEBSOCKET_TYPE_t](#enum-websocket_type_t)
-* [Functions](#functions)
-  * [ws_server_start](#int-ws_server_start)
-  * [ws_server_stop](#int-ws_server_stop)
-  * [ws_server_add_client](#int-ws_server_add_clientstruct-netconn-connchar-msguint16_t-lenchar-urlvoid-callback)
-  * [ws_server_add_client_protocol](#int-ws_server_add_client_protocolstruct-netconn-connchar-msguint16_t-lenchar-urlchar-protocolvoid-callback)
-  * [ws_server_len_url](#int-ws_server_len_urlchar-url)
-  * [ws_server_len_all](#int-ws_server_len_all)
-  * [ws_server_remove_client](#int-ws_server_remove_clientint-num)
-  * [ws_server_remove_clients](#int-ws_server_remove_clientschar-url)
-  * [ws_server_remove_all](#int-ws_server_remove_all)
-  * [ws_server_send_text_client](#int-ws_server_send_text_clientint-numchar-msguint64_t-len)
-  * [ws_server_send_text_clients](#int-ws_server_send_text_clientschar-urlchar-msguint64_t-len)
-  * [ws_server_send_text_all](#int-ws_server_send_text_allchar-msguint64_t-len)
-  * [ws_server_send_text_client_from_callback](#int-ws_server_send_text_client_from_callbackint-numchar-msguint64_t-len)
-  * [ws_server_send_text_clients_from_callback](#int-ws_server_send_text_clients_from_callbackchar-urlchar-msguint64_t-len)
-  * [ws_server_send_text_all_from_callback](#int-ws_server_send_text_all_from_callbackchar-msguint64_t-len)
-
-Enumerations
-============
-
-enum WEBSOCKET_TYPE_t
----------------------
-
-The different types of WebSocket events.
-
-*Values*
-  * `WEBSOCKET_CONNECT`: A new client has successfully connected.
-  * `WEBSOCKET_DISCONNECT_EXTERNAL`: The other side sent a disconnect message.
-  * `WEBSOCKET_DISCONNECT_INTERNAL`: The esp32 server sent a disconnect message.
-  * `WEBSOCKET_DISCONNECT_ERROR`: Disconnect due to a connection error.
-  * `WEBSOCKET_TEXT`: Incoming text.
-  * `WEBSOCKET_BIN`: Incoming binary.
-  * `WEBSOCKET_PING`: The other side sent a ping message.
-  * `WEBSOCKET_PONG`: The other side successfully replied to our ping.
-
-Functions
-=========
-
-int ws_server_start()
----------------------
-
-Starts the WebSocket Server. Use this function before attempting any
-sort of transmission or adding a client.
-
-*Returns*
-  * 1: successful start
-  * 0: server already running
-
-int ws_server_stop()
---------------------
-
-Stops the WebSocket Server. New clients can still be added and
-messages can be sent, but new messages will not be received.
-
-*Returns*
-  * 1: successful stop
-  * 0: server was not running before
-
-int ws_server_add_client(struct netconn* conn,char* msg,uint16_t len,char* url,void *callback)
-----------------------------------------------------------------------------------------------
-
-Adds a client to the WebSocket Server handler and performs the necessary handshake.
-
-*Parameters*
-  * `conn`: the lwip netconn connection.
-  * `msg`: the entire incoming request message to join the server. Necessary for the handshake.
-  * `len`: the length of `msg`.
-  * `url`: the NULL-terminated url. Used to keep track of clients, not required.
-  * `callback`: the callback that is used to run WebSocket events. This must be with parameters(uint8_t num,WEBSOCKET_TYPE_t type,char* msg,uint64_t len) where "num" is the client number, "type" is the event type, "msg" is the incoming message, and "len" is the message length. The callback itself is optional.
-
-*Returns*
-  * -2: not enough information in `msg` to perform handshake.
-  * -1: server full, or connection issue.
-  * 0 or greater: connection number
-
-int ws_server_add_client_protocol(struct netconn* conn,char* msg,uint16_t len,char* url,char* protocol,void *callback)
-----------------------------------------------------------------------------------------------------------------------
-
-Adds a client to the WebSocket Server handler and performs the necessary handshake. Will also send
-the specified protocol.
-
-*Parameters*
-  * `conn`: the lwip netconn connection.
-  * `msg`: the entire incoming request message to join the server. Necessary for the handshake.
-  * `len`: the length of `msg`.
-  * `url`: the NULL-terminated url. Used to keep track of clients, not required.
-  * `protocol`: the NULL-terminated protocol. This will be sent to the client in the header.
-  * `callback`: the callback that is used to run WebSocket events. This must be with parameters(uint8_t num,WEBSOCKET_TYPE_t type,char* msg,uint64_t len) where "num" is the client number, "type" is the event type, "msg" is the incoming message, and "len" is the message length. The callback itself is optional.
-
-*Returns*
-  * -2: not enough information in `msg` to perform handshake.
-  * -1: server full, or connection issue.
-  * 0 or greater: connection number
-
-int ws_server_len_url(char* url)
---------------------------------
-
-Returns the number of clients connected to the specified URL.
-
-*Parameters*
-  * `url`: the NULL-terminated string of the desired URL.
-
-*Returns*
-  * The number of clients connected to the specified URL.
-
-int ws_server_len_all()
------------------------
-
-*Returns*
-  * The number of connected clients.
-
-int ws_server_remove_client(int num)
-------------------------------------
-
-Removes the desired client.
-
-*Parameters*
-  * `num`: the client number
-
-*Returns*
-  * 0: not a valid client number
-  * 1: client disconnected
-
-int ws_server_remove_clients(char* url)
----------------------------------------
-
-Removes all clients connect to the desired URL.
-
-*Parameters*
-  * `url`: the NULL-terminated URL.
-
-*Returns*
-  * The number of clients that were disconnected.
-
-int ws_server_remove_all()
---------------------------
-
-Removes all clients from server.
-
-*Returns*
-  * The number of clients that were disconnected.
-
-int ws_server_send_text_client(int num,char* msg,uint64_t len)
---------------------------------------------------------------
-
-Sends the desired message to the client.
-
-*Parameters*
-  * `num`: the client's number.
-  * `msg`: the desired message.
-  * `len`: the length of the message.
-
-*Returns*
-  * 0: message not sent properly
-  * 1: message sent
-
-int ws_server_send_text_clients(char* url,char* msg,uint64_t len)
------------------------------------------------------------------
-
-Sends the message to clients connected to the desired URL.
-
-*Parameters*
-  * `url`: the NULL-terminated URL.
-  * `msg`: the desired message.
-  * `len`: the length of the message.
-
-*Returns*
-  * The number of clients that the message was sent to.
-
-int ws_server_send_text_all(char* msg,uint64_t len)
----------------------------------------------------
-
-Sends the message to all connected clients.
-
-*Parameters*
-  * `msg`: the desired message
-  * `len`: the length of the message
-
-*Returns*
-  * The number of clients that the message was sent to.
-
-int ws_server_send_text_client_from_callback(int num,char* msg,uint64_t len)
-----------------------------------------------------------------------------
-
-Sends the desired message to the client. Only use this inside the callback function.
-
-*Parameters*
-  * `num`: the client's number.
-  * `msg`: the desired message.
-  * `len`: the length of the message.
-
-*Returns*
-  * 0: message not sent properly
-  * 1: message sent
-
-int ws_server_send_text_clients_from_callback(char* url,char* msg,uint64_t len)
--------------------------------------------------------------------------------
-
-Sends the message to clients connected to the desired URL. Only use this inside the callback function.
-
-*Parameters*
-  * `url`: the NULL-terminated URL.
-  * `msg`: the desired message.
-  * `len`: the length of the message.
-
-*Returns*
-  * The number of clients that the message was sent to.
-
-int ws_server_send_text_all_from_callback(char* msg,uint64_t len)
------------------------------------------------------------------
-
-Sends the message to all connected clients. Only use this inside the callback function.
-
-*Parameters*
-  * `msg`: the desired message
-  * `len`: the length of the message
-
-*Returns*
-  * The number of clients that the message was sent to.

mercurial