
【免费下载链接】client-sdk-jsLiveKit browser client SDK (javascript)项目地址https://gitcode.com/gh_mirrors/cl/client-sdk-js点击查看免费下载LiveKit client SDKnpm 包名livekit-client的 RPC 功能让房间内的浏览器参与者之间可以直接发起请求-响应式远程调用一方调用performRpc发起请求另一方通过registerRpcMethod注册的处理函数响应返回无需自建信令服务器。本文带你快速上手 livekit-client RPC 实战并演示如何用它把 LLM 的 function call 轻松转发到客户端执行。为什么需要参与者间 RPC传统实时应用里参与者之间传消息多为只发不回的广播。而很多场景需要一问一答 把 LLM 的 function call 转发给某个客户端执行并取回结果 向指定参与者查询状态、设备信息 多人互动中发起投票、点赞等带响应的操作livekit-client 内置的 RPC 基于房间可靠数据通道实现天然支持点对点、超时控制与错误回传且与 LiveKit Agents 深度配合非常适合AI 智能体 ↔ 浏览器端的双向调用。核心关键词速记livekit-client RPC、performRpc、registerRpcMethod、请求-响应式远程调用、LLM function call 转发快速上手两步完成一次 RPC 调用整个流程只有两个 API接收方注册方法发起方调用方法。第一步接收方注册 RPC 方法在实现方法的参与者端调用room.registerRpcMethod(method, handler)handler 是一个异步函数接收RpcInvocationData含requestId、callerIdentity、payload、responseTimeout返回的字符串就是对方的响应room.localParticipant?.registerRpcMethod( greet, // 方法名任意字符串 async (data: RpcInvocationData) { console.log(收到来自 ${data.callerIdentity} 的调用${data.payload}); return Hello, ${data.callerIdentity}!; }, );⚠️ 注意handler 收到的responseTimeout告诉你最多还有多少毫秒可响应超时未返回调用方会收到超时错误。第二步发起方调用 performRpc调用方通过room.localParticipant.performRpc()发起请求参数包含目标参与者identity、方法名和 payloadtry { const response await room.localParticipant!.performRpc({ destinationIdentity: recipient-identity, method: greet, payload: Hello from RPC!, }); console.log(RPC 响应, response); } catch (error) { console.error(RPC 调用失败, error); }官方文档对这两步的完整说明见 README.md。超时控制与内置错误码速查performRpc的responseTimeout参数默认15000ms若设置小于 8000ms 会被自动提升到 8000ms为往返延迟留出缓冲。相关定义见 utils.ts。RPC 在实时环境下可能因各种原因失败SDK 提供了结构化的RpcError常见内置错误码如下错误码名称含义1400UNSUPPORTED_METHOD对端未注册该方法1401RECIPIENT_NOT_FOUND找不到目标参与者1402REQUEST_PAYLOAD_TOO_LARGE请求负载过大旧版协议 15KB 上限1500APPLICATION_ERROR处理函数抛出非 RpcError 异常1501CONNECTION_TIMEOUT连接确认超时1502RESPONSE_TIMEOUT等待响应超时1503RECIPIENT_DISCONNECTED对端在请求期间断开 最佳实践在 handler 中抛出带message的RpcError错误信息会原样传递给调用方其他类型异常只会以1500Application Error到达对端。完整错误定义见 utils.ts。实战转发 LLM function call 到浏览器端这是 RPC 最亮眼的用法LiveKit Agents 中的 LLM 决定执行某个 function call如打开闪光灯查询用户数据后直接通过 RPC 把它转发给对应浏览器客户端执行并同步取回执行结果——几行代码即可打通云端 AI → 端侧执行 → 结果回流的闭环。流程示意LLM (Agent 端) 浏览器客户端 │ │ │ 1. performRpc(run-action, │ │ payloadJSON 参数) │ ├─────────────────────────────▶│ │ 2. handler 执行本地动作│ │ │ │ 3. return 执行结果(JSON) │ ◀──────────────────────────────┤接收端只需注册一个通用执行器把 function call 的name与args映射到本地能力返回 JSON 结果字符串发送端Agent 侧拿到响应后即可把结果喂回 LLM 继续对话。完整参数与类型定义可参考 RpcClientManager.ts 与 extension.ts。运行官方 RPC Demo仓库内置了一个多参与者演示caller向greeter发问候、向math-genius请求开平方/除法并演示了错误处理与对端断开场景。运行方式在examples/rpc目录下pnpm install pnpm dev然后打开本地地址通常是 http://localhost:5173点击按钮即可观看完整演示。注意需先在.env.local配置LIVEKIT_API_KEY、LIVEKIT_API_SECRET和LIVEKIT_URL详见 examples/rpc/README.md。示例代码包含 5 个典型场景推荐对照阅读基础问候performGreeting长数据往返20KB 级 payloadperformSendVeryLongInfo错误处理除以 0 抛出异常performDivision调用未注册方法performQuantumHypergeometricSeries对端断开的感知performDisconnection核心源码导航想深入原理的同学可以按以下路径阅读扩展入口rpc扩展注册、API 挂载src/room/rpc/extension.ts发起端管理器请求发布、ACK 跟踪、超时src/room/rpc/client/RpcClientManager.ts接收端管理器方法分发、响应回传src/room/rpc/server/RpcServerManager.ts参数与错误类型定义src/room/rpc/utils.ts可运行示例examples/rpc/rpc-demo.ts小结livekit-client 的 RPC 用一对极简 APIregisterRpcMethodperformRpc就实现了房间内的请求-响应式远程调用配合内置超时与错误体系尤其适合把 LLM function call 转发到浏览器端执行的 AI 实时应用场景。建议先跑一遍 examples/rpc 示例再结合本文错误码表把异常场景覆盖到位 赞分享【免费下载链接】client-sdk-jsLiveKit browser client SDK (javascript)项目地址https://gitcode.com/gh_mirrors/cl/client-sdk-js点击查看免费下载相关推荐RabbitMQ RPC模式请求-响应消息模式实战指南RabbitMQ RPC模式请求 响应消息模式实战指南 在分布式系统中你是否遇到过服务间通信延迟高、耦合紧密的问题是否在寻找一种既能保持异步优势又能实现消息队列后端消息路由流处理dsh-purge 安装指南三步装好并验证生效dsh purge 安装指南三步装好并验证生效 dsh purge 是装在本机官方 DeepSeek Harness 上的红队评测清洗插件给宿主运行时策略打dsh-plugin网络安全AI 安全治理模型安全红蓝对抗人工智能5分钟快速上手Binance波动率交易机器人从零开始的自动化交易配置教程5分钟快速上手Binance波动率交易机器人从零开始的自动化交易配置教程 想要在加密货币市场实现自动化交易却不知从何开始Binance波动率交易机器人是一个金融科技区块链上一篇agentic-ai优化 | 延迟与成本优化终极技巧让你的Agentic系统又快又省钱下一篇pure_live HLS 按短轨结束的原生边界控制审计-shortest 候选策略的取舍与证据链创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考