Websocket - Token price
Websocket API for token prices
1. Connection Workflow
2. Sample code
const WebSocket = require('ws');
const tokens = [
"So11111111111111111111111111111111111111112",
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
];
const socket = new WebSocket('wss://ws.price.astralane.io/price-by-token', {
headers: {
'x-api-key': 'YOUR-API-KEY'
}
});
let messageCount = 0;
let unsubscribeTimeout;
const subscribeEvent = {
event: "subscribe",
tokens: tokens,
};
const unsubscribeEvent = {
event: "unsubscribe",
tokens: tokens,
};
socket.on('open', function() {
console.log('Connected to server');
console.log('Subscribing to tokens:', tokens);
socket.send(JSON.stringify(subscribeEvent));
// Set timeout to unsubscribe after 60 seconds
unsubscribeTimeout = setTimeout(() => {
console.log('Unsubscribing after 60 seconds...');
socket.send(JSON.stringify(unsubscribeEvent));
socket.close();
}, 60000);
});
socket.on('message', function(data) {
messageCount++;
console.log(`Received message #${messageCount}`);
try {
const parsedData = JSON.parse(data.toString());
console.log('Parsed data:', parsedData);
} catch (e) {
console.log('Raw data (not JSON):', data.toString());
}
});
socket.on('error', function(error) {
console.error('WebSocket error:', error);
clearTimeout(unsubscribeTimeout);
});
socket.on('close', function(code, reason) {
console.log(`Connection closed: [${code}] ${reason}`);
console.log(`Total messages received: ${messageCount}`);
clearTimeout(unsubscribeTimeout);
});
2.1 Response example
3. Disconnection
Last updated