WebSocket
向回傳的 url 建立 WebSocket。token 走 subprotocol 傳遞,因為瀏覽器無法在 WebSocket 握手時設定 header。
expiresAt 約束的是建立連線的截止時間,不是連線能存活多久。一條串流最長 4 小時;連續 60 秒沒有音訊就會結束。session.ping 不會重置這 60 秒。
這是一條純即時管道。除非你傳 store: true,否則什麼都不留——連線一斷,音訊和轉錄在我們這邊就沒有了。
向回傳的 url 建立 WebSocket。token 走 subprotocol 傳遞,因為瀏覽器無法在 WebSocket 握手時設定 header。
expiresAt 約束的是建立連線的截止時間,不是連線能存活多久。一條串流最長 4 小時;連續 60 秒沒有音訊就會結束。session.ping 不會重置這 60 秒。
這是一條純即時管道。除非你傳 store: true,否則什麼都不留——連線一斷,音訊和轉錄在我們這邊就沒有了。
wss://<url from connect>Sec-WebSocket-Protocol: lecsync.realtime.v1, <token>const ws = new WebSocket( url, ['lecsync.realtime.v1', token],);// 收到 session.ready 再送音訊。ws.onmessage = (e) => { const msg = JSON.parse(e.data); if (msg.type === 'session.ready') startSendingAudio();};ws.send(JSON.stringify({ type: 'session.ping' }));// → { "type": "session.pong" }