未验证 提交 162d66d2 编写于 作者: Y Yusuke Sakurai 提交者: GitHub

fix: chat example's content-security-policy (#4091)

上级 4e1abb4f
<html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>ws chat example</title>
</head>
<body>
......@@ -10,7 +11,7 @@
<button id="closeButton" disabled>close</button>
</div>
<div id="status"></div>
<ul id="timeline"></div>
<ul id="timeline"></ul>
<script>
let ws;
function messageDom(msg) {
......@@ -35,7 +36,7 @@
}
function connect() {
if (ws) ws.close();
ws = new WebSocket("ws://0.0.0.0:8080/ws");
ws = new WebSocket(`ws://${location.host}/ws`);
ws.addEventListener("open", () => {
console.log("open", ws);
applyState({connected: true});
......
......@@ -36,12 +36,17 @@ listenAndServe({ port: 8080 }, async req => {
if (u.protocol.startsWith("http")) {
// server launched by deno run http(s)://.../server.ts,
fetch(u.href).then(resp => {
resp.headers.set("content-type", "text/html");
return req.respond(resp);
return req.respond({
status: resp.status,
headers: new Headers({
"content-type": "text/html"
}),
body: resp.body
});
});
} else {
// server launched by deno run ./server.ts
const file = await Deno.open("./index.html");
const file = await Deno.open(u.pathname);
req.respond({
status: 200,
headers: new Headers({
......@@ -51,6 +56,14 @@ listenAndServe({ port: 8080 }, async req => {
});
}
}
if (req.method === "GET" && req.url === "/favicon.ico") {
req.respond({
status: 302,
headers: new Headers({
location: "https://deno.land/favicon.ico"
})
});
}
if (req.method === "GET" && req.url === "/ws") {
if (acceptable(req)) {
acceptWebSocket({
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册