Skip to content

Events

@veloxts/events provides real-time communication.

Terminal window
pnpm add @veloxts/events
import { eventsPlugin } from '@veloxts/events';
app.register(eventsPlugin, {
driver: 'ws',
path: '/ws',
});
// Public channel
await ctx.events.broadcast('orders', 'order.created', {
orderId: '123',
total: 99.99,
});
// Private channel (user-specific)
await ctx.events.broadcast(`user.${userId}`, 'notification', {
message: 'New message received',
});
eventsPlugin({
driver: 'ws',
path: '/ws',
redis: process.env.REDIS_URL, // Optional for scaling
})
eventsPlugin({
driver: 'sse',
path: '/events',
})
// WebSocket
const ws = new WebSocket('ws://localhost:3030/ws');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data.event, data.payload);
};
// Subscribe to channel
ws.send(JSON.stringify({ type: 'subscribe', channel: 'orders' }));