deno.com

HTTP 伺服器:WebSockets

在 Github 上編輯

一個處理 websocket 請求的 HTTP 伺服器範例。

若要在預設端口啟動伺服器,請使用處理程序調用 `Deno.serve`。
Deno.serve((req) => {
首先,我們驗證客戶端是否正在協商升級到 websockets。如果沒有,我們可以給出 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://deno-docs.dev.org.tw/examples/scripts/http_server_websocket.ts

你找到需要的資訊了嗎?

隱私權政策