Веб-сервис RESTful с Джерси на Java и шаблоном наблюдателя

Я пытаюсь реализовать приложение n-уровневой архитектуры для школьного проекта. Связь между клиентами и сервером осуществляется с помощью веб-сервиса RESTful. Я использовал Jersey, чтобы реализовать это на Java. Единственный вопрос, который у меня есть, заключается в том, как зарегистрировать клиентов на сервере, чтобы получать уведомления об изменениях (как обычно делается с шаблоном наблюдателя или шаблоном прослушивания/публикации). Нужно ли мне также реализовать службу на стороне клиента, а затем зарегистрировать URL-адрес, который будет вызываться сервером, а затем вызывать эти URL-адреса при возникновении изменений?

Спасибо за вашу помощь!


person J-Hit    schedule 31.03.2014    source источник


Ответы (1)


Как правило, в схеме клиент-сервер на основе http сервер всегда отвечает на запрос. Сервер никак не может отправить что-либо (уведомление) без запроса клиента. Но есть случаи, когда сервер отправляет данные клиенту без запроса клиента и, следовательно, Server-Push попал в кадр.

Джерси предоставляет Server Push в форме Server-Sent События (SSE). В документации говорится,

События, отправленные сервером (SSE), — это механизм, который позволяет серверу асинхронно передавать данные с сервера клиенту после того, как клиент установил соединение клиент-сервер.

Обратите внимание, что клиенту необходимо сначала установить соединение с сервером. Вы можете назвать этот первый запрос клиента регистрацией. Как только соединение установлено, сервер может отправлять/проталкивать данные клиенту. Связанное упоминание также содержит рабочий пример.

person Santosh    schedule 31.03.2014