Vaadin Push не работает через 10 (поток)

В Vaadin 8 я могу асинхронно обновлять Grid входящими данными веб-сокета, используя access метод пользовательского интерфейса, который блокирует поток и выполняет обновления, а затем подталкивает их без необходимости запрашивать их у клиента.

access(() -> addMessage(message));

Сейчас я пытаюсь использовать vaadin 10, и поскольку основной класс, с которого вы начинаете, не расширяет пользовательский интерфейс, я пытаюсь сделать это следующим образом:

UI.getCurrent().access((Command) () -> addTrade(message))

Однако это не работает, и вам нужно щелкнуть где-нибудь на странице, чтобы обновление произошло. У меня есть аннотация @Push к этому классу, поэтому я считаю, что принудительный запуск сервера должен работать ... Большое вам спасибо, ребята!

в моем сервлете:

asyncSupported = true

также пробовали this.getUI().get().access(), но все еще не обновлялись.


person Nick Friskel    schedule 06.04.2018    source источник


Ответы (1)


Скорее всего, это вызвано https://github.com/vaadin/flow/issues/3256, который в настоящее время исправляется.

В билетах также предлагается обходной путь: grid.getElement().getNode().markAsDirty();. Если обходной путь решает проблему, скорее всего, это вызвано этой ошибкой. Если нет, то есть еще одна проблема, которая требует дальнейшего изучения.

person Leif Åstrand    schedule 06.04.2018
comment
Вот и все, спасибо вам большое! Я сделал grid.getElement().getNode().markAsDirty(); прямо перед вызовом обновления (внутри метода доступа) - person Nick Friskel; 06.04.2018