Skip to main content
On this page

TCP sockets 和 TLS

2026 年 7 月 20 日停止服务

Deno Deploy Classic 将于 2026 年 7 月 20 日关闭。我们建议迁移 到新的 Deno Deploy 平台。详情请参阅 迁移指南

Deno Deploy Classic 支持出站 TCP 和 TLS 连接。这些 API 允许 您在 Deploy 中使用诸如 PostgreSQL、SQLite、MongoDB 等数据库。

需要了解如何提供 TCP 服务的相关信息?请查阅 Deno.serve 的文档,其中包括对 TCP 选项 的支持说明。

Deno.connect Jump to heading

建立出站 TCP 连接。

函数定义与 Deno 相同,唯一的限制是 transport 选项只能为 tcp,并且 hostname 不能是 localhost 或为空。

function Deno.connect(options: ConnectOptions): Promise<Conn>

示例 Jump to heading

async function handler(_req) {
  // 与 example.com 建立 TCP 连接
  const connection = await Deno.connect({
    port: 80,
    hostname: "example.com",
  });

  // 发送原始 HTTP GET 请求。
  const request = new TextEncoder().encode(
    "GET / HTTP/1.1\nHost: example.com\r\n\r\n",
  );
  const _bytesWritten = await connection.write(request);

  // 从连接中读取 15 字节。
  const buffer = new Uint8Array(15);
  await connection.read(buffer);
  connection.close();

  // 将字节作为纯文本返回。
  return new Response(buffer, {
    headers: {
      "content-type": "text/plain;charset=utf-8",
    },
  });
}

Deno.serve(handler);

Deno.connectTls Jump to heading

建立出站 TLS 连接。

函数定义与 Deno 相同,唯一的限制是 hostname 不能是 localhost 或为空。

function Deno.connectTls(options: ConnectTlsOptions): Promise<Conn>

示例 Jump to heading

async function handler(_req) {
  // 与 example.com 建立 TLS 连接
  const connection = await Deno.connectTls({
    port: 443,
    hostname: "example.com",
  });

  // 发送原始 HTTP GET 请求。
  const request = new TextEncoder().encode(
    "GET / HTTP/1.1\nHost: example.com\r\n\r\n",
  );
  const _bytesWritten = await connection.write(request);

  // 从连接中读取 15 字节。
  const buffer = new Uint8Array(15);
  await connection.read(buffer);
  connection.close();

  // 将字节作为纯文本返回。
  return new Response(buffer, {
    headers: {
      "content-type": "text/plain;charset=utf-8",
    },
  });
}

Deno.serve(handler);

Last updated on

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

编辑此页面
隐私政策