✉️ WebSockets
Miniflare will always upgrade Web Socket connections. The Worker must respond
with a status 101 Switching Protocols response including a webSocket. For
example, the Worker below implements an echo WebSocket server:
export default {  fetch(request) {    const [client, server] = Object.values(new WebSocketPair());
    server.accept();    server.addEventListener("message", (event) => {      server.send(event.data);    });
    return new Response(null, {      status: 101,      webSocket: client,    });  },};When using dispatchFetch, you are responsible for handling WebSockets by using
the webSocket property on Response. As an example, if the above worker
script was stored in echo.mjs:
import { Miniflare } from "miniflare";
const mf = new Miniflare({  modules: true,  scriptPath: "echo.mjs",});
const res = await mf.dispatchFetch("https://example.com", {  headers: {    Upgrade: "websocket",  },});const webSocket = res.webSocket;webSocket.accept();webSocket.addEventListener("message", (event) => {  console.log(event.data);});
webSocket.send("Hello!"); // Above listener logs "Hello!"