-
-
Notifications
You must be signed in to change notification settings - Fork 6.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ping requests reach the user defined middlewares #13109
Comments
We used to have a I think it makes sense to handle this in the http server still, so adding a middleware here should be good enough. I'm also fine with the custom |
Describe the bug
When the server shuts down, the client starts sending periodic ping requests to check if the server is back up and then reload. These requests reach the middlewares defined by the users but it should probably be handled by vite before it reaches any of these like the initial websocket upgrade request does. There is also no reliable way to identify these requests for the middlewares to ignore it themselves.
ref: sveltejs/kit#6910
ref: sveltejs/kit#7218
vite/packages/vite/src/client/client.ts
Lines 318 to 324 in c63ba3f
Here it uses the no-cors mode so custom headers won't be sent along, can't use that to identify the ping request, but that can be worked around by abusing the Accept header, something like
Accept: text/x-vite-ping
and check that instead.I could submit a PR, but can't tell which file would be responsible for intercepting it, is it
ws.ts
?Reproduction
https://github.com/gtm-nayan/vite-ping-repro
Steps to reproduce
Run pnpm install
Run pnpm dev
Open the page
Turn off dev server
Restart the dev server (ideally set a breakpoint on this line to avoid the clutter from unrelated requests)
Observe that the custom middleware from vite.config.js will have first logged the request URL from the ping request
System Info
npmPackages: vite: ^4.3.5 => 4.3.5
Used Package Manager
pnpm
Logs
No response
Validations
The text was updated successfully, but these errors were encountered: