VoxEngine集成Ultravox serverWebSocket遇参数报错求助
解决VoxEngine集成Ultravox ServerWebSocket时的endpoint参数报错问题
你遇到的报错是因为当前VoxEngine的Ultravox SDK要求必须传入endpoint参数,即便Ultravox的serverWebSocket文档未提及该参数。以下是两种可行的解决方式:
方式一:从joinUrl中提取endpoint值
joinUrl的格式通常为wss://<endpoint>/...,你可以直接截取域名部分作为endpoint参数。例如若joinUrl为wss://ws.ultravox.ai/v1/calls/xxx/join,则endpoint就是ws.ultravox.ai。
方式二:使用Ultravox官方固定endpoint
根据Ultravox的服务部署,通用endpoint一般为ws.ultravox.ai;若你的服务部署在欧盟区域,可能需要使用ws.eu.ultravox.ai,具体可参考后端生成joinUrl时使用的域名。
修正后的代码示例
// 从后端获取的joinUrl和callId const joinUrl = "wss://ws.ultravox.ai/v1/calls/your-call-id/join"; const callId = "your-call-id"; // 从joinUrl中提取endpoint const endpoint = new URL(joinUrl).hostname; // 创建WebSocket客户端 const uvClient = Ultravox.createWebSocketAPIClient({ joinUrl: joinUrl, callId: callId, endpoint: endpoint, // 新增必填的endpoint参数 onWebSocketClose: (code, reason) => { console.log(`WebSocket closed: ${code} - ${reason}`); }, onWebSocketError: (error) => { console.error(`WebSocket error: ${error}`); } }); // 监听AI代理消息示例 uvClient.onMessage((message) => { console.log("Received message from Ultravox:", message); });
另外,你也可以检查VoxEngine SDK版本,确认是否有更新版本已移除该必填限制,但目前多数在用版本仍要求传入该参数,上述方法可直接解决问题。
内容的提问来源于stack exchange,提问作者plmat
相关产品推荐
相关产品推荐

