update readme with some EventSource examples
This commit is contained in:
parent
330027a8de
commit
5137dbe0bf
51
README.md
51
README.md
|
@ -671,6 +671,57 @@ client->binary(flash_binary, 4);
|
|||
The server includes EventSource (Server-Sent Events) plugin which can be used to send short text events to the browser.
|
||||
Difference between EventSource and WebSockets is that EventSource is single direction, text-only protocol.
|
||||
|
||||
### Setup Event Source on the server
|
||||
```cpp
|
||||
AsyncWebServer server(80);
|
||||
AsyncEventSource events("/events");
|
||||
|
||||
void setup(){
|
||||
// setup ......
|
||||
events.onConnect([](AsyncEventSourceClient *client){
|
||||
if(client->lastId()){
|
||||
Serial.printf("Client reconnected! Last message ID that it gat is: %u\n", client->lastId());
|
||||
}
|
||||
//send event with message "hello!", id current millis
|
||||
// and set reconnect delay to 1 second
|
||||
client->send("hello!",NULL,millis(),1000);
|
||||
});
|
||||
server.addHandler(&events);
|
||||
// setup ......
|
||||
}
|
||||
|
||||
void loop(){
|
||||
if(eventTriggered){ // your logic here
|
||||
//send event "myevent"
|
||||
client->send("my event content","myevent",millis());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Setup Event Source in the browser
|
||||
```javascript
|
||||
if (!!window.EventSource) {
|
||||
var source = new EventSource('/events');
|
||||
|
||||
source.addEventListener('open', function(e) {
|
||||
console.log("Events Connected");
|
||||
}, false);
|
||||
|
||||
source.addEventListener('error', function(e) {
|
||||
if (e.target.readyState != EventSource.OPEN) {
|
||||
console.log("Events Disconnected");
|
||||
}
|
||||
}, false);
|
||||
|
||||
source.addEventListener('message', function(e) {
|
||||
console.log("message", e.data);
|
||||
}, false);
|
||||
|
||||
source.addEventListener('myevent', function(e) {
|
||||
console.log("myevent", e.data);
|
||||
}, false);
|
||||
}
|
||||
```
|
||||
|
||||
## Setting up the server
|
||||
```cpp
|
||||
|
|
Loading…
Reference in New Issue