Вы можете проверить gwteventservice . Он утверждает, что есть способ отправить события сервера и уведомить клиента.
У меня такое ощущение, что они могут быть реализованы как долго выполняющиеся (зависающие) вызовы RPC между клиентом и сервером, которые истекают через некоторый интервал (скажем, 20 секунд), а затем повторно выполняются. Сервер возвращает обратный вызов, если в это время происходит событие.
Я не использовал это лично, но знаю людей, использующих это, чтобы передать события клиенту. Посмотрите на документы . Если мое предположение верно, идея состоит в том, чтобы отправить вызов RPC на сервер, который не возвращается (зависает). Если событие происходит на сервере, сервер отвечает, и этот вызов RPC возвращается с событием. Если событие отсутствует, время ожидания вызова истекает через 20 секунд . Затем на сервер делается новый вызов, который зависает таким же образом, пока не произойдет событие.
Что достигается, так это то, что он уменьшает количество вызовов на сервер до одного для каждого события (если оно есть) или одного вызова каждые 20 секунд (если его нет). Похоже, что 20-секундный интервал может быть настроен.
Я полагаю, что если события не произойдет, количество отправленных данных будет минимальным - возможно, можно полностью отменить обратный вызов или сделать сбой без передачи данных, но я действительно не знаю.
Вот еще один ресурс на ServerPush - который, скорее всего, реализован gwteventservice.