Twilio结合WebSocket无法传递参数的问题求助
Twilio结合WebSocket无法传递参数的问题求助
我最近碰到个头疼的问题:在用Twilio的时候,没法把参数传递给通过webhook调用的WebSocket。我当前用的技术栈是node.js、express、ws(JS websocket库)。
其实webhook本身没啥问题,它只是调用我这边的一个接口而已。但在这个接口里,我创建了Twilio的VoiceResponse实例,用它来连接WebSocket,过程中我想传一些参数进去——这样就能在WebSocket里获取用户数据之类的信息了,可偏偏就是传不进去😭
我已经试了好几种方法,先贴一下我的接口代码片段:
app.post("/incoming", async (req, res) => { const ttsService = new TextToSpeechService({ deepgramApiKey: process.env.DEEPGRAM_API_KEY, model: "aura-asteria-en", }); const greetingText = "Hi! You have called Gigi Bianco, my name is Alice, how can I help you?"; const twiml = new VoiceResponse(); // 尝试连接WebSocket并传递参数,但一直没成功 const connect = twiml.connect(); connect.stream({ url: `wss://my-server-url/ws`, // 试过在这里加自定义参数,比如params: { userId: req.body.From },但WebSocket里拿不到 }); res.type("text/xml").send(twiml.toString()); });
再贴一下WebSocket服务端的处理代码:
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', (ws) => { ws.on('message', (data) => { // 尝试获取传递的参数,但这里根本拿不到相关内容 console.log('Received:', data); }); });
我试过在stream的URL里拼接参数,比如wss://my-server-url/ws?userId=${req.body.From},但Twilio好像不支持这种方式,直接连接失败;也试过在VoiceResponse的其他节点加自定义参数,都没用。有没有大佬能指点一下,到底该怎么把参数从Twilio的webhook接口传递到对应的WebSocket里啊?
备注:内容来源于stack exchange,提问作者petru tirla
相关产品推荐
相关产品推荐

