Comments (3)
Stable sort them by length to keep order of same length
from uwebsockets.
The order of matches is basically impossible to reason about. The issue here is that Express match in order of registration, in a linear list of routes (algorithmically stupid but easy to reason about), while uWS match with a tree (algorithmically smart but hard or impossible to reason about / control match order).
So the rules need to change - we need to establish that adding routes in one order will be exactly the same as adding them in another order.
So to make matching somewhat sane we need to sort them like so:
Static routes always match first
Paremeter routes match second
Wildcard routes match last
I think this is the only solution when having a tree
from uwebsockets.
Please have a test with npm install uNetworking/uWebSockets.js#binaries
from uwebsockets.
Related Issues (20)
- uWS::Loop::defer causes crashes (SIGSEGV) HOT 3
- Program crash when `publish` was called too many times in a short time in websocket server HOT 5
- Kernel load balancing HOT 1
- C++ 20 Module support HOT 2
- benchmark HOT 1
- UB in sending long messages HOT 5
- A crash occurred when the client closed the connection HOT 3
- Pressure test HOT 1
- Random crashes HOT 9
- Specify QoS for MQTT syntax HOT 1
- Unable to fail a request without triggering a CORS error HOT 5
- CLOSE_WAIT question HOT 8
- Segmentation fault when returning SSL_CTX of the app HOT 4
- Use AddressSanitizer before posting crash issues
- is it support client in 2024?
- getenv is deprecated HOT 1
- clang-tidy: error: Use of memory after it is freed [clang-analyzer-cplusplus.NewDelete,-warnings-as-errors] HOT 5
- µWebSockets.js => ~30.000 ; µWebSockets => ~1.015 ? HOT 1
- Underscore in http methods get trashed. HOT 4
- Client App Not Working HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uwebsockets.