deno.com

HTTP 服务器:WebSockets

一个处理 WebSocket 请求的 HTTP 服务器示例。

要在默认端口启动服务器,请使用处理程序调用 `Deno.serve`。
Deno.serve((req) => {
首先,我们验证客户端是否正在协商升级到 WebSocket。如果不是,我们可以返回 501 状态码,以表明我们不支持普通的 HTTP 请求。
  if (req.headers.get("upgrade") != "websocket") {
    return new Response(null, { status: 501 });
  }
然后我们可以将请求升级为 WebSocket
  const { socket, response } = Deno.upgradeWebSocket(req);
现在我们可以访问一个标准的 WebSocket 对象。让我们来处理“open”事件
  socket.addEventListener("open", () => {
    console.log("a client connected!");
  });
我们也可以以类似的方式处理消息。这里我们设置了一个简单的 ping/pong 示例。
  socket.addEventListener("message", (event) => {
    if (event.data === "ping") {
      socket.send("pong");
    }
  });
最后,我们返回由 upgradeWebSocket 创建的响应。
  return response;
});

使用 Deno CLI 在本地运行此示例

deno run -N https://docs.deno.org.cn/examples/scripts/http_server_websocket.ts

您找到所需内容了吗?

隐私政策