Binance22 min read
Real-time Integration
Real-time data streaming with Extension features
Extension Team
Última actualización:2/20/2024
Real-time Integration
Learn how to implement real-time data streaming in your applications using Neura Extensions.
WebSocket Connection
Establishing Connection
import { NeuraWebSocket } from '@neura/extensions';
const ws = new NeuraWebSocket({
apiKey: 'your-api-key'
});
ws.connect();
Subscribing to Channels
// Price updates
ws.subscribe('prices', ['BTC/USD', 'ETH/USD']);
// Order book updates
ws.subscribe('orderbook', 'BTC/USD');
// Trade stream
ws.subscribe('trades', 'BTC/USD');
Handling Messages
ws.on('price', (data) => {
console.log(`${data.symbol}: $${data.price}`);
});
ws.on('trade', (data) => {
console.log(`Trade: ${data.side} ${data.amount} @ ${data.price}`);
});
ws.on('orderbook', (data) => {
updateOrderBookUI(data);
});
Connection Management
Reconnection
ws.on('disconnect', () => {
console.log('Disconnected, attempting reconnect...');
});
ws.on('reconnect', () => {
console.log('Reconnected successfully');
// Re-subscribe to channels
});
Heartbeat
The connection sends automatic heartbeats to maintain the connection.
Best Practices
- Handle disconnections gracefully
- Implement exponential backoff for reconnects
- Process messages asynchronously
- Use message queuing for high-frequency data
- Monitor connection health
Example: Real-time Price Ticker
const prices = {};
ws.subscribe('prices', ['BTC/USD', 'ETH/USD', 'SOL/USD']);
ws.on('price', (data) => {
prices[data.symbol] = {
price: data.price,
change: data.change24h,
timestamp: Date.now()
};
updateUI(prices);
});
Rate Limits
- Maximum 10 subscriptions per connection
- 1 message per 100ms per channel
- Premium users: unlimited subscriptions


