Errors when using uWebsockets while clients are connected and server restarts
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 63.2k
- Forks
- 10.3k
- Avg merge
- 11d 20h
- Merged PRs (30d)
- 2
Description
Describe the bug
Hi,
at my company we are in the middle of switching from express to uWebSockets.
We use
- Nestjs
- Ultimate-Express
- socket.io with attachApp
- engine.use(sessionMiddleware) <- thats the problem... or maybe not? (express-session)
While everything works really good, there is one thing we get errors.
- Server starts deployment, after that clients can connect and everything works
- Server goes down, restarts, etc. the client browser stays open!!
- When Server is up again, the reconnecting begins (sessionMiddleware is called)
- Various errors are showing up:
- Ok so I first thought hmm my sessionMiddleware does some bad things
- But after some debugging, I could fix it quite easy in uServer -> handleUpgrade
- I had to cork the response write and upgrade
- I saved the header before entering the async callback
I'm sry that I cannot really give a code example for this problem.
But does this seems to be a bug or just a problem in my project?
Nice to know, I absolutely don't have any error or problems after changing these few lines.
(Re-)Connecting with engine.use and express-session middleware works like a charm.
Platform:
- OS: [e.g. Linux, Windows, Mac]
Thanks in advance!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the uServer handleUpgrade path and the engine.use(sessionMiddleware) integration described in the report. Reproduce a server restart while browser clients remain connected, then trace reconnect handling and response writes; done means the reported errors no longer occur with this setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- express, nodejs, typescript
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100