运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

启用 WebSocket 消息压缩

设置 perMessageDeflate 参数以启用 permessage-deflate WebSocket 扩展。随后,Bun 会与支持该扩展的客户端协商压缩。除非针对每条消息选择启用压缩(见下文),否则通过 ws.send() 发送的消息仍不会被压缩。

server.ts
Bun.serve({
  // ...
  websocket: {
    // 启用压缩
    perMessageDeflate: true,
  },
});

要为单条消息启用压缩,请将 true 作为第二个参数传递给 ws.send()。这要求已启用 perMessageDeflate;否则 Bun 会以未压缩的形式发送消息。

server.ts
Bun.serve({
  // ...
  websocket: {
    perMessageDeflate: true,
    async message(ws, message) {
      // 发送压缩消息
      ws.send(message, true);
    },
  },
});