deno.com

HTTP 服务器:WebSockets

在 Github 上编辑

一个处理 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 --allow-net https://docs.deno.org.cn/examples/scripts/http_server_websocket.ts

你找到你需要的东西了吗?

隐私政策