Skip to main content
Synthra provides WebSocket-based streaming for real-time bidirectional communication. Ideal for chat interfaces and live updates.

Connection

const stream = agent.createStream({
  sessionId: 'session_abc123def456',
  autoReconnect: true,
  heartbeatInterval: 30000
});

stream.on('connected', () => {
  console.log('Stream connected');
});

stream.on('error', (error) => {
  console.error('Stream error:', error);
});

Sending Messages

stream.send({
  type: 'message',
  content: 'Hello, Synthra!',
  metadata: {
    timestamp: Date.now()
  }
});

Receiving Messages

stream.on('message', (message) => {
  console.log(`${message.role}: ${message.content}`);
});

stream.on('typing', () => {
  console.log('Assistant is typing...');
});

stream.on('complete', () => {
  console.log('Message complete');
});

Streaming Responses

stream.send({
  type: 'message',
  content: 'Write a long story',
  streaming: true
});

let fullResponse = '';

stream.on('chunk', (chunk) => {
  fullResponse += chunk.content;
  process.stdout.write(chunk.content);
});

Reconnection

const stream = agent.createStream({
  sessionId: 'session_abc123def456',
  autoReconnect: true,
  maxReconnectAttempts: 5,
  reconnectDelay: 1000
});

stream.on('reconnecting', (attempt) => {
  console.log(`Reconnecting (attempt ${attempt}/5)...`);
});

React Integration

import { useEffect, useState } from 'react';

function ChatComponent({ sessionId }) {
  const [messages, setMessages] = useState([]);
  const [stream, setStream] = useState(null);
  
  useEffect(() => {
    const newStream = agent.createStream({ sessionId });
    
    newStream.on('message', (message) => {
      setMessages(prev => [...prev, message]);
    });
    
    setStream(newStream);
    
    return () => {
      newStream.close();
    };
  }, [sessionId]);
  
  return (
    <div>
      {messages.map(msg => (
        <div key={msg.id}>{msg.content}</div>
      ))}
    </div>
  );
}

Performance

MetricValue
Connection establishmentunder 100ms
Message latencyunder 10ms
Throughput1,000 msg/s per connection

Limits

TierMax ConnectionsMessages/secMax Message Size
Free21010 KB
Pro10100100 KB
Enterprise1001,0001 MB
WebSocket connections count toward your concurrent connection limit.
Implement proper error handling and reconnection logic for production environments.