File tree Expand file tree Collapse file tree
packages/plugin-vite/src/plugins Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,22 @@ export function devServer(): Plugin[] {
1515 configureServer ( server ) {
1616 const IGNORE_URLS = / ^ \/ ( @ ( v i t e | f s | i d ) | \. v i t e ) \/ / ;
1717
18+ server . httpServer ?. on ( "deno:request" , ( ev ) => {
19+ const { headers } = ev . req ;
20+ if (
21+ headers . get ( "upgrade" ) !== "websocket" ||
22+ // Vite uses websockets with protocol set to vite-hmr, vite-ping
23+ headers . get ( "sec-websocket-protocol" ) ?. startsWith ( "vite-" )
24+ ) {
25+ return ;
26+ }
27+ // When pendingResponse is set, rest of the handlers won't fire for any request, so websocket requests
28+ // are going straight to the fresh server.
29+ ev . pendingResponse = server . ssrLoadModule ( "fresh:server_entry" ) . then (
30+ ( mod ) => mod . default . fetch ( ev . req ) as Promise < Response > ,
31+ ) ;
32+ } ) ;
33+
1834 server . middlewares . use ( async ( nodeReq , nodeRes , next ) => {
1935 const serverCfg = server . config . server ;
2036
You can’t perform that action at this time.
0 commit comments