µWebSockets™ ("micro") is simple, secure & standards compliant web I/O for intense[1] and/or constrained use cases.
This is the development branch of v0.15. Track progress & issues here. Checkout v0.14 for something stable.
uWS::SSLApp({
/* There are tons of SSL options */
.cert_file_name = "cert.pem",
.key_file_name = "key.pem"
}).get("/hello", [](auto *res, auto *req) {
/* You can efficiently stream huge files too */
res->writeHeader("Content-Type", "text/html; charset=utf-8")->end("Hello HTTP!");
}).ws<UserData>("/*", {
/* Just a few of the available handlers */
.open = [](auto *ws, auto *req) {
ws->subscribe("buzzword weekly");
},
.message = [](auto *ws, std::string_view message, uWS::OpCode opCode) {
ws->send(message, opCode);
}
}).listen(9001, [](auto *token) {
if (token) {
std::cout << "Listening on port " << 9001 << std::endl;
}
}).run();
A free & open source (permissive) project since 2016. Kindly sponsored by BitMEX, Bitfinex & Coinbase in 2018.
Become a paying sponsor to unlock support, issue reporting, roadmaps and to drop suggestions.
Commercial support is available via a per-hourly consulting plan or as otherwise negotiated. If you're stuck, worried about design or just in need of help don't hesitate throwing me, the author a mail and we'll figure out what's best for both parties. I want your business to have a proper understanding of the problem before rushing in to one of the many pitfalls.
All that glitters is not gold. Especially so in a market driven by flashy logos, hype and pointless badges.
Http | WebSockets |
---|---|