1
0
mirror of https://github.com/actix/examples synced 2024-12-18 08:23:10 +01:00
examples/server-sent-events/README.md
Arve Seljebu d85adb8513 server-sent events (#177)
* server-sent events

* remove stale clients

* ping as message
2019-09-25 10:39:49 +06:00

40 lines
1010 B
Markdown

# actix-sse
Example of server-sent events, aka `EventSource`, with actix web.
```sh
cargo run
```
Open http://localhost:8080/ with a browser, then send events with another HTTP client:
```sh
curl localhost:8080/broadcast/my_message
```
*my_message* should appear in the browser with a timestamp.
## Performance
This implementation serve thousand of clients on a 2013 macbook air without problems.
Run [benchmark.js](benchmark.js) to benchmark your own system:
```sh
$ node benchmark.js
Connected: 1000, connection time: 867 ms, total broadcast time: 23 ms^C⏎
```
### Error *Too many open files*
You may be limited to a maximal number of connections (open file descriptors). Setting maximum number of open file descriptors to 2048:
```sh
ulimit -n 2048
```
Test maximum number of open connections with [drain.js](drain.js):
```sh
$ node drain.js
Connections dropped: 5957, accepting connections: false^C⏎
```
_Accepting connections_ indicates wheter resources for the server have been exhausted.