📝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