[ PROMPT_NODE_24472 ]
Workers VPC API 参考
[ SKILL_DOCUMENTATION ]
# TCP Sockets API 参考
Cloudflare Workers TCP Sockets API (`cloudflare:sockets`) 的完整 API 参考。
## 核心函数:`connect()`
typescript
function connect(
address: SocketAddress,
options?: SocketOptions
): Socket
创建到指定地址的出站 TCP 连接。
### 参数
#### `SocketAddress`
typescript
interface SocketAddress {
hostname: string; // DNS 主机名或 IP 地址
port: number; // TCP 端口 (1-65535,排除被阻止的端口)
}
| 字段 | 类型 | 描述 | 示例 |
|-------|------|-------------|---------|
| `hostname` | `string` | 目标主机名或 IP | `"db.internal.net"`, `"10.0.1.50"` |
| `port` | `number` | TCP 端口号 | `5432`, `443`, `22` |
DNS 名称在连接时解析。支持 IPv4、IPv6 和私有 IP (10.x, 172.16.x, 192.168.x)。
#### `SocketOptions`
typescript
interface SocketOptions {
secureTransport?: "off" | "on" | "starttls";
allowHalfOpen?: boolean;
}
| 字段 | 类型 | 默认值 | 描述 |
|-------|------|---------|-------------|
| `secureTransport` | `"off" | "on" | "starttls"` | `"off"` | TLS 模式 |
| `allowHalfOpen` | `boolean` | `false` | 允许半关闭连接 |
**`secureTransport` 模式:**
| 模式 | 行为 | 使用场景 |
|------|----------|----------|
| `"off"` | 纯 TCP,无加密 | 测试,内部受信任网络 |
| `"on"` | 立即进行 TLS 握手 | HTTPS,安全数据库,SSH |
| `"starttls"` | 先以明文开始,稍后使用 `startTls()` 升级 | Postgres, SMTP, IMAP |
**`allowHalfOpen`:** 当为 `false`(默认)时,关闭读取流会自动关闭写入流。当为 `true` 时,流是独立的。
### 返回值
一个带有可读/可写流的 `Socket` 对象。
## Socket 接口
typescript
interface Socket {
// 流
readable: ReadableStream;
writable: WritableStream;
// 连接状态
opened: Promise;
closed: Promise;
// 方法
close(): Promise;
startTls(): Socket;
}
### 属性
#### `readable: ReadableStream`
用于从套接字读取数据的流。使用 `getReader()` 来消费数据。
typescript
const reader = socket.readable.getReader();
const { done, value } = await reader.read(); // 读取一个数据块
#### `writable: WritableStream`
用于向套接字写入数据的流。使用 `getWriter()` 来发送数据。
typescript
const writer = socket.writable.getWriter();
await writer