WebSocket
Connect to WebSocket for real-time audio streaming.
Connection URL
Use websocket_url from session initialization:
wss://api.scriptix.io/realtime/{session_id}
Connection
JavaScript
const ws = new WebSocket('wss://api.scriptix.io/realtime/session_abc123');
ws.on('open', () => {
console.log('Connected!');
});
ws.on('message', (data) => {
const message = JSON.parse(data);
console.log('Received:', message);
});
ws.on('error', (error) => {
console.error('WebSocket error:', error);
});
ws.on('close', () => {
console.log('Disconnected');
});
Python
import websocket
import json
def on_open(ws):
print("Connected!")
def on_message(ws, message):
data = json.loads(message)
print(f"Received: {data}")
def on_error(ws, error):
print(f"Error: {error}")
def on_close(ws):
print("Disconnected")
ws = websocket.WebSocketApp(
'wss://api.scriptix.io/realtime/session_abc123',
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
ws.run_forever()
Sending Audio
Binary Format (Recommended)
// Send raw PCM audio
ws.send(audioBuffer);
JSON Format
ws.send(JSON.stringify({
type: 'audio',
data: base64EncodedAudio
}));
Receiving Messages
Message Types
ws.on('message', (data) => {
const message = JSON.parse(data);
switch (message.type) {
case 'partial':
console.log('Partial:', message.text);
break;
case 'final':
console.log('Final:', message.text);
break;
case 'error':
console.error('Error:', message.error);
break;
}
});
Connection Management
Reconnection
let reconnectDelay = 1000;
const maxReconnectDelay = 30000;
function connect() {
const ws = new WebSocket(websocketUrl);
ws.on('close', () => {
console.log(`Reconnecting in ${reconnectDelay}ms...`);
setTimeout(connect, reconnectDelay);
reconnectDelay = Math.min(reconnectDelay * 2, maxReconnectDelay);
});
ws.on('open', () => {
reconnectDelay = 1000; // Reset on successful connection
});
}
Graceful Close
ws.send(JSON.stringify({ type: 'end_of_session' }));
ws.close();
Next Steps
- Message Protocol - Complete protocol reference
- Audio Formats - Audio specifications