μWebSockets for Node.js back-ends
APACHE-2.0 License
Bot releases are visible (Hide)
Published by uNetworkingAB over 1 year ago
Published by uNetworkingAB over 1 year ago
Published by uNetworkingAB over 1 year ago
Full Changelog: https://github.com/uNetworking/uWebSockets.js/compare/v20.20.0...v20.21.0
Published by uNetworkingAB over 1 year ago
Published by uNetworkingAB almost 2 years ago
Published by uNetworkingAB almost 2 years ago
Published by uNetworkingAB almost 2 years ago
The typings are now more strict and more aligned with the C++ interface. This means that documentation for TypeScript is more applicable to C++ and vice versa. In fact, the C++ examples are in many aspects identical to what you would write in TypeScript (ignoring syntax differences).
The biggest change is that you can no longer attach any key/value pair to WebSocket. You must define a static interface of the members up front. This means the type of WebSocket
is now WebSocket<UserData>
and WebSocket.getUserData()
returns UserData
.
Here is a complete example in TypeScript:
interface UserData {
openDate: number;
}
uWS.App().ws<UserData>("/", {
open: (ws) => {
ws.getUserData().openDate = Date.now();
},
close: (ws, code, message) => {
console.log("WebSocket with openDate " + ws.getUserData().openDate + " left.");
}
}).listen(3000, (listenSocket) => {
});
and for comparison here is the equivalent example in C++:
struct UserData {
time_t openDate;
}
uWS::App().ws<UserData>("/", {
.open = [](auto *ws) {
ws->getUserData()->openDate = clock();
},
.close = [](auto *ws, auto code, auto message) {
std::cout << "WebSocket with openDate " << ws->getUserData()->openDate << " left." << std::endl;
}
}).listen(3000, [](auto *listenSocket) {
});
Obviously, this only applies to TypeScript users. JavaScript users can still attach anything to anything without limitation and do not need to use getUserData(). So JavaScript code is unaffected by this change.
Published by uNetworkingAB almost 2 years ago
Published by uNetworkingAB almost 2 years ago
Published by uNetworkingAB about 2 years ago
Published by uNetworkingAB about 2 years ago
Published by uNetworkingAB about 2 years ago
Published by uNetworkingAB about 2 years ago
Updates uWS from v20.14.0 to v20.23.0 which brings many (stable) improvements. Please have a read over at https://github.com/uNetworking/uWebSockets/releases for a more complete explanation of all the changes involved.
Other than these stable changes, all platforms now ship with (still experimental) HTTP/3 support enabled. It is known to work on Linux - macOS still has some missing pieces and Windows is entirely broken for now. You can try the H3lloWorld.js example as a starting point, even though there have been more visual demos presented.
HTTP/3 support in this release is to be considered entirely broken for any production purposes, see it more as a bonus coming along the (many) stable changes.
Published by over 2 years ago
Published by over 2 years ago
Published by over 2 years ago
Published by over 2 years ago
With this release and going forwards we will support only LTS versions of Node.js. Every year one new LTS version will be added and one old will be dropped. This means we always support a rolling set of 3 LTS versions. This release supports 14, 16 and 18.
Published by almost 3 years ago
Published by almost 3 years ago
Published by almost 3 years ago