Erster Docker-Stand
This commit is contained in:
41
_node_modules/hono/dist/adapter/cloudflare-workers/websocket.js
generated
vendored
Normal file
41
_node_modules/hono/dist/adapter/cloudflare-workers/websocket.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
// src/adapter/cloudflare-workers/websocket.ts
|
||||
import { WSContext, defineWebSocketHelper } from "../../helper/websocket/index.js";
|
||||
var upgradeWebSocket = defineWebSocketHelper(async (c, events) => {
|
||||
const upgradeHeader = c.req.header("Upgrade");
|
||||
if (upgradeHeader !== "websocket") {
|
||||
return;
|
||||
}
|
||||
const webSocketPair = new WebSocketPair();
|
||||
const client = webSocketPair[0];
|
||||
const server = webSocketPair[1];
|
||||
const wsContext = new WSContext({
|
||||
close: (code, reason) => server.close(code, reason),
|
||||
get protocol() {
|
||||
return server.protocol;
|
||||
},
|
||||
raw: server,
|
||||
get readyState() {
|
||||
return server.readyState;
|
||||
},
|
||||
url: server.url ? new URL(server.url) : null,
|
||||
send: (source) => server.send(source)
|
||||
});
|
||||
if (events.onClose) {
|
||||
server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
|
||||
}
|
||||
if (events.onMessage) {
|
||||
server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
|
||||
}
|
||||
if (events.onError) {
|
||||
server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
|
||||
}
|
||||
server.accept?.();
|
||||
return new Response(null, {
|
||||
status: 101,
|
||||
// @ts-expect-error - webSocket is not typed
|
||||
webSocket: client
|
||||
});
|
||||
});
|
||||
export {
|
||||
upgradeWebSocket
|
||||
};
|
||||
Reference in New Issue
Block a user