SSE от Java до веб-браузера - PullRequest
       23

SSE от Java до веб-браузера

0 голосов
/ 04 декабря 2018

Я думал, что отправка HTTP SSE из Java и обработка этих соединений не должны быть такими сложными, но я не могу понять, как это сделать.

У меня есть один сервер (Java SE 11)и несколько клиентов (веб-браузеры с JavaScript), которые начинают прослушивать сообщения с сервера.(Я тестирую на localhost)

На стороне клиента очень просто:

var evtSource = new EventSource("localhost/javaapp");

evtSource.onmessage = function(e) {
  console.log("message: " + e.data);
}

evtSource.onerror = function(e) {
  console.log("sse failed");
}

Но на стороне сервера я понятия не имею.После некоторого исследования я обнаружил, что, возможно, мне следует использовать API javax.ws.rs.sse, но все, что у него есть, - это интерфейсы, и примеры фрагментов кода, которые вы обнаружите, используют множество аннотаций @чтобы избежать.

Мне вообще нужен этот API?Или я могу просто создать простое HTTP-соединение с соответствующими заголовками?Но тогда как реализовать все возможности SSE?Автоматическое поддержание работоспособности и так далее ...

Цель состоит в том, чтобы обслуживать всех клиентов отдельно.Они подписываются на сервер, и в случае, если какое-либо событие происходит для одного, сервер отправляет сообщение этому.Так что речь идет не о том, чтобы передавать всем одно и то же.

...