← Cloudflare Workers / workers / testing / miniflare / core
WebSockets
Сервер
Miniflare всегда выполняет апгрейд соединений Web Socket. Worker должен отвечать
статусом 101 Switching Protocols ответ, включающий webSocket. Например,
Worker ниже реализует эхо-сервер WebSocket:
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,
});
},
};При использовании dispatchFetch, вы несёте ответственность за обработку WebSocket с помощью
webSocket свойство у Response. Например, если приведённый выше скрипт worker
хранится в 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!"