uWebSockets 0.10.0
github.com
github.com
I haven't tested the scalability to a million clients, but I have no reason to doubt it could handle it.
On the other hand, I have tested with 20k clients each sending 100 x 128 byte messages a second.
So I've tried pumping 2 million messages a second through our platform (which is at the envelope of my expected load), and the server just sits there and takes it. At these levels saturating the network interface is the main issue.
I've also tried it in single core, 4 core, 8 core and 20 core threaded configurations. Everything works as it should and contention is quite minimal.
The ability to achieve that over WebSockets is largely due to the work Alex has done (and continues to do) to squeeze every last ounce out of the stack.
As far as I'm concerned uWebSockets 0.10.0 is rock solid and at the point where using it in production is totally fine.
I can totally recommend it.
Congrats on the release Alex and thanks for the lib!
These are the situations where it usually gets a lot more interesting. E.g. if the library just buffers messages all the way until they can be sent you might get out of memory sooner or later.
But no I haven't explicitly tested with thousands of leaky clients.
All the nice optimizations that you only can do if you know what's happening in the background.
I read post about how Bluebird Promise implementation is more efficient than others and it was basically stuff like storing state as binary flags instead of boolean vars etc. pp.
Makefile 1.2% CMake 0.8% QMake 0.4%
That is a highly optimized build process.http://venturebeat.com/2016/04/07/deepstreamhub-raises-1-mil...
https://hashrocket.com/blog/posts/websocket-shootout
I've used websocketpp in the past (in C++), with fairly good results, but uWebSockets is in a whole other league; especially in a multi-threaded server.
Hint: at 500k ws consumes all memory in my computer and the GC stalls are constant. My system start to freeze and my mouse cursor is no longer responding.
I can have 1 million connections with uws at the same time I'm watching cat clips on youtube, listening to spotify and having my complete IDE up and running.
Btw, 1.3 GB is for the Node.js addon - the native server does 1 million connections using less than 300 mb of user space memory.