Получение данных в реальном времени из базы данных с помощью CubeJs

Я использую cubejs с React. Я хочу отображать данные в реальном времени.

Я пробовал использовать методы и состояние жизненного цикла React, где <QueryRender>компонент срабатывает каждые 2 секунды. Но это не работает.

1 ответ

Вы можете переключить транспорт на веб-сокеты:

import cubejs from '@cubejs-client/core';
import WebSocketTransport from '@cubejs-client/ws-transport';

const cubejsApi = cubejs({
  transport: new WebSocketTransport({ authentication: CUBEJS_TOKEN, apiUrl: 'ws://localhost:4000/' })
});

И используйте подписки на перехватчики реакции:

import { useCubeQuery } from '@cubejs-client/react';

const Chart = ({ query }) => {
  const { resultSet, error, isLoading } = useCubeQuery(query, { subscribe: true });

  if (isLoading) {
    return <div>Loading...</div>;
  }

  if (error) {
    return <pre>{error.toString()}</pre>;
  }

  return <LineChart resultSet={resultSet}/>;
};

Чтобы узнать больше: https://cube.dev/docs/real-time-data-fetch

Другие вопросы по тегам