Deno.upgradeWebSocket
Используется для обновления входящего HTTP-запроса до WebSocket.
Принимая запрос, возвращает пару WebSocket и Response. Для успешного обновления websocket необходимо ответить на исходный запрос с помощью возвращённого ответа.
const conn = Deno.listen({ port: 80 });
const httpConn = Deno.serveHttp(await conn.accept());
const e = await httpConn.nextRequest();
if (e) {
const { socket, response } = Deno.upgradeWebSocket(e.request);
socket.onopen = () => {
socket.send("Hello World!");
};
socket.onmessage = (e) => {
console.log(e.data);
socket.close();
};
socket.onclose = () => console.log("WebSocket has been closed.");
socket.onerror = (e) => console.error("WebSocket error:", e);
e.respondWith(response);
}
Если тело запроса изменяется (читается) до завершения обновления, обновление завершается неудачно.
Данная операция пока не потребляет запрос или не открывает websocket. Это происходит только после того, как возвращённый ответ был передан в respondWith.
upgradeWebSocket(request: Request, options?: UpgradeWebSocketOptions): WebSocketUpgradeТип возвращаемого значения
© 2018–2022 the Deno authors
https://doc.deno.land/deno/stable/~/Deno.upgradeWebSocket