Events & Message Handling
ConvaiClient provides a strongly typed event system. Use client.on(event, handler) to subscribe.
Events
State Changes
client.on('stateChange', (state) => {
console.log(state.agentState, state.isConnected);
});New Messages
client.on('message', (message) => {
console.log('Message:', message.type, message.content);
});Messages Updated
client.on('messagesChange', (messages) => {
console.log('Total messages:', messages.length);
});Real-time Transcription
client.on('userTranscriptionChange', (text) => {
console.log('You said:', text);
});Lifecycle Events
client.on('connect', () => console.log('Connected'));
client.on('disconnect', () => console.log('Disconnected'));
client.on('botReady', () => console.log('Bot is ready'));Errors
client.on('error', (err) => {
console.error('Convai error:', err);
});Message Types
Convai messages include:
user-transcriptionbot-llm-textbot-emotionactionbehavior-tree
Only some are shown in UIs (usually transcription + bot text).
Removing Listeners
const unsub = client.on('message', handler);
unsub(); // Remove listenerLast updated
Was this helpful?