SuperAPI AI 工具集

bun-websocket-server

编程与开发

查看项目

更新于 10-15 21:05

技能介绍

用途:介绍如何在 Bun 运行时中使用内置 WebSocket 支持,通过 Bun.serve() 搭建实时通信服务。

主要能力:fetch 中调用 server.upgrade(req) 完成协议升级;websocket 处理器提供 open、message、close、drain、ping、pong 事件;ws.send 支持发送字符串、JSON 字符串、Uint8Array、Buffer,并可以带压缩参数;可通过 server.upgrade 的 data 字段为连接挂载自定义数据并在 ws.data 中读取;支持基于主题的发布订阅,ws.subscribe、ws.unsubscribe、ws.publish 与 server.publish 可实现房间广播或全局广播;可选配置 maxPayloadLength、idleTimeout、backpressureLimit、perMessageDeflate、sendPings 等参数。

使用方式:先以 Bun.serve 定义 fetch 与 websocket 两部分,在 fetch 中判断并升级请求,在 websocket 回调中处理连接生命周期与消息。认证可在升级前校验请求头,失败则返回 401。发送消息后可用返回值判断缓冲量以处理背压。客户端使用标准 WebSocket 连接 ws:// 地址。

适用场景:聊天室、实时通知、广播推送等需要长连接的实时通信场景;也可由 HTTP 端点或定时器触发服务端广播。

限制:资料未提供具体版本要求与性能数据;消息过大、升级失败、背压等常见错误需按资料给出的方向排查;关于压缩细节与多实例水平扩展(如 Redis 发布订阅)仅有引用文档提示,正文未展开,相关资料暂未提供。