# actix-sse Example of server-sent events, aka `EventSource`, with actix web. ```sh cd server-sent-events cargo run ``` Open http://127.0.0.1:8080/ with a browser, then send events with another HTTP client: ```sh curl 127.0.0.1:8080/broadcast/my_message ``` *my_message* should appear in the browser with a timestamp. ## Performance This implementation can serve thousands of clients on a 2021 MacBook with no problems. Run `node ./benchmark.js` to benchmark your own system: ```sh $ node benchmark.js Connected: 1000, connection time: 201 ms, total broadcast time: 20 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 `node ./drain.js`: ```sh $ node drain.js Connections dropped: 10450, accepting connections: false^C⏎ ``` _Accepting connections_ indicates whether resources for the server have been exhausted.