SF5 Mercure Подписаться
В настоящее время я столкнулся с небольшой проблемой, так как я никогда не использовал Mercure, я следовал руководству по внедрению Mercure в моем приложении Symfony 5, которое использует Turbo.
Mercure работает очень хорошо, но проблема в том, что я хочу использовать Mercure для отображения данных, хранящихся в базе данных (MSSQL), через другое приложение. В целом в этой базе данных MSSQL у меня есть данные, которые представляют собой журналы ошибок из приложения Windows. Каждый раз, когда возникает ошибка, в базу данных записывается журнал.
Мое веб-приложение должно позволять визуализировать эти журналы. Но и в реальном времени мое приложение не создает данные, а только читает их. Итак, после некоторого исследования (Doc Symfony) я должен использовать это:
class PublishController
{
public function __invoke(HubInterface $hub): Response
{
$update = new Update(
'http://example.com/books/1',
json_encode(['status' => 'OutOfStock'])
);
$hub->publish($update);
return new Response('published!');
}
}
Затем «подписывает» URL -> 'http://example.com/books/1', как в примере.
Но я не записываю никаких данных, ну, пользователь только читает данные, отображаемые на его экране.
Так возможно ли работать с Mercure в реальном времени без использования Publisher?
Согласно моим исследованиям, я не думаю, что это возможно.
Но если у вас есть решения, меня интересует альтернатива.
Что касается AJAX, то в моем случае это не очень хорошее решение, потому что может быть много журналов, поступающих одновременно, поэтому с точки зрения производительности это не очень хорошо (запросы к серверу каждые 1 секунду).