πExamples
Discover code examples in various languages for establishing connections to our server and efficiently listening for real-time data updates. Choose from Python, Go, JavaScript, and more. Integrate sea
const WebSocket = require('ws');
const socketUrl = "wss://ws.flow.simplemonitors.com/ws";
let ws;
let reconnectInterval;
let stopReconnect = false; // Flag to track reconnection attempts
const authenticateConnection = () => {
const authMessage = {
type: 'auth',
data: {
app: "<app name>",
key: "<user UUID>",
}
};
ws.send(JSON.stringify(authMessage));
}
const onOpen = () => {
console.log('Connected to Flow API');
authenticateConnection();
clearInterval(reconnectInterval);
}
const onMessage = (message) => {
const response = JSON.parse(message);
switch (response.type) {
case 'auth_success':
console.log('Successfully authenticated and connected to Flow API.');
break;
case 'auth_failed':
console.log('Authentication failed. Stopping reconnection attempts.');
stopReconnect = true;
ws.close();
break;
case 'data':
const feedData = response.data;
const { platform, name, locale, siteOrigin, status, time } = feedData;
console.log(`Feed data: Platform=${platform}, Name=${name}, Locale=${locale}, Domain=${siteOrigin}, Status=${status}, Time=${time}`);
break;
default:
console.log(`Unknown message type '${response.type}': ${response.message}`);
}
}
const onClose = () => {
console.log('Disconnected from Flow API');
if (!stopReconnect) {
reconnect();
}
}
const connectToServer = () => {
ws = new WebSocket(socketUrl);
ws.on('open', onOpen);
ws.on('message', onMessage);
ws.on('close', onClose);
ws.on('error', (error) => {
console.error('WebSocket error:', error);
});
}
const reconnect = () => {
if (stopReconnect) {
return; // Stop reconnection attempts if flag is set
}
clearInterval(reconnectInterval);
console.log('Reconnecting in 5 seconds...');
reconnectInterval = setInterval(() => {
console.log('Attempting to reconnect...');
connectToServer();
}, 5000);
}
connectToServer();Last updated