2015-12-20 3 views
0

Мне нужно обновить разные поля (tinycon и значок на кнопке, подобной той, что есть на facebook), указав количество непрочитанных сообщений зарегистрированного пользователя в моем Vaadin7 -Webapp.Разница между Vaadin 7 Push и комбинацией Eventbus + немедленного режима

Итак, я начал настраивать функцию Vaadin 7 Push, но безуспешно. На последнем Tomcat (тестировался с: 7.0.61 и 8.0.30) и последним Vaadin (7.5.10) он просто не работал. Нет сообщений об ошибках, но также нет нажатия. PushDemo от https://vaadin.com/wiki/-/wiki/Main/Enabling+server+push тоже ничего не сделал. I Угадай Антивирусное ПО моей компании прерывает базовую коммуникацию в сети.

Но в конце я достиг желаемого результата (=> обновлять метки полей динамически во время выполнения на основе событий) без Vaadin Push, но с простой комбинацией отправки события через Eventbus (Guava) и установки setimmediate (true) в соответствующих графических интерфейсах.

Вопрос: Означает ли это, что мне не нужен Vaadin Push для достижения желаемой функциональности, или я чего-то не хватает? Какое преимущество у меня с Push/Websockets/Есть ли недостатки с моим фактическим решением или это аналогично Vaadin-Push?

Shorteneded вопрос:

(From result aspects): Vaadin 7 Push equals Eventbus + immediate fields. 

?

ответ

3

setImmediate (true) не толкает и не опросит ваш сервер!

Он просто выполняет обратный вызов сервера, когда объект запускает событие на стороне клиента. Также смотрите this обсуждение о setImmediate.

Разница между опросом и толчке являются:

  • Нажмите: Сервер информирует клиента об изменениях, в противном случае нет движения потоков между обоими
  • Опрос: клиент запрашивает у сервера каждые X секунд, если изменения имеют было сделано
  • setImmediate (правда): обновления только тогда, когда клиент отправляет запрос на сервер (в основном ба некоторые EventListeners, определенные в интерфейсе когда пользователь не перемещает мышь, никакие обновления не будут каждый быть показаны
.

Если push не работает, лучше используйте объект polling, который взаимодействует с сервером каждые x секунд. Компонент progressbar может быть такой.

+0

Danke äh thanks Andre. Понимаю. Это означает, что setImmediate (true) разрешает только пользовательский опрос, как описано здесь: https://vaadin.com/web/matti/blog/-/blogs/to-push-or-dontpush, не так ли? Поэтому всегда требуется взаимодействие с пользователем. Я увижу, если я останусь с этим подходом, инициированным клиентом, или переключитесь на опрос. У опроса могут быть недостатки производительности, когда мой webapp получает слишком много пользователей: -/ –

+0

Правильно, но иногда это достаточно хорошо;) Gruss –

Смежные вопросы