Simple Node.js examples for WebSocket news integration
const { io } = require('socket.io-client');
const socket = io('wss://api.byul.ai/news-v2', {
auth: { apiKey: process.env.BYUL_API_KEY }
});
socket.on('connect', () => {
console.log('Connected to Byul AI');
socket.emit('news:subscribe', {
minImportance: 7,
startDate: '2024-01-01T00:00:00.000Z'
});
});
socket.on('news:data', (response) => {
const { data } = response;
const { news } = data;
news.forEach(article => {
console.log(`${article.title} (${article.importanceScore}/10)`);
});
});
const express = require('express');
const { io } = require('socket.io-client');
const app = express();
const byulSocket = io('wss://api.byul.ai/news-v2', {
auth: { apiKey: process.env.BYUL_API_KEY }
});
// Store latest news
let latestNews = [];
byulSocket.on('connect', () => {
byulSocket.emit('news:subscribe', { minImportance: 6, startDate: '2024-01-01T00:00:00.000Z' });
});
byulSocket.on('news:data', (response) => {
const { data } = response;
const { news } = data;
latestNews = [...news, ...latestNews].slice(0, 50);
});
// API endpoint
app.get('/api/news', (req, res) => {
res.json(latestNews);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
const { io } = require('socket.io-client');
const socket = io('wss://api.byul.ai/news-v2', {
reconnection: true,
reconnectionAttempts: 5
});
socket.on('connect', () => {
console.log('Connected');
socket.emit('news:subscribe', { minImportance: 7, startDate: '2024-01-01T00:00:00.000Z' });
});
socket.on('disconnect', () => {
console.log('Disconnected');
});
socket.on('connect_error', (error) => {
console.error('Connection failed:', error.message);
});
socket.on('news:error', (error) => {
console.error('News error:', error.message);
});
socket.on('news:data', (articles) => {
console.log(`Received ${articles.length} articles`);
});
{
"name": "byul-websocket-client",
"version": "1.0.0",
"dependencies": {
"socket.io-client": "^4.7.0",
"express": "^4.18.0"
}
}
npm install
BYUL_API_KEY=byul_api_key node app.js
const { io } = require('socket.io-client');
const socket = io('wss://api.byul.ai/news-v2', {
auth: { apiKey: process.env.BYUL_API_KEY }
});
const portfolio = ['AAPL', 'GOOGL', 'MSFT'];
socket.on('connect', () => {
// Subscribe to portfolio news
portfolio.forEach(symbol => {
socket.emit('news:subscribe', {
symbol,
minImportance: 6,
startDate: '2024-01-01T00:00:00.000Z',
endDate: '2024-01-31T23:59:59.999Z'
});
});
});
socket.on('news:data', (articles) => {
articles.forEach(article => {
if (portfolio.includes(article.symbol)) {
console.log(`${article.symbol}: ${article.title}`);
console.log(` Importance: ${article.importance}/10`);
console.log(` URL: ${article.url}\n`);
}
});
});