сервер отправляет события с весны, mvc всегда закрыт

1

У меня есть демонстрация sse, но она не работает, я отправляю код js и java, пожалуйста, скажите мне, что случилось, спасибо.

это js:

if (window.EventSource) {
    var source = new EventSource('http://127.0.0.1:8080/pushweb/push');
    source.addEventListener('message', function(e) {
        console.log(e.data, this.readyState);
    },false);

    source.addEventListener('open', function(e) {
        console.log("conncted",this.readyState);
    },false);
    source.addEventListener('error', function(e) {
        if (e.target.readyState == EventSource.CLOSED) {
            console.log("closed");
        } else if(e.target.readyState == EventSource.CONNECTING){
            console.log("connecting");
        }else {
            console.log("error"+this.readyState);
        }
    }, false);
} else {
    console.log("not support SSE");
}

это код springmvc:

@CrossOrigin(origins = "*", maxAge = 3600)
@Controller
public class PushController
{
@RequestMapping(value = "/push", produces = "text/event-stream;charset=UTF-8")
@ResponseBody
public String push()
{
    String str =Long.toString(System.currentTimeMillis());
    return "data:"+str + "\n\n\n";
}

@RequestMapping(value = "/message")
@ResponseBody
public String message()
{
    String stre = "hello";
    return stre;
}

}

это результат консоли хром

Теги:
spring-mvc
server-sent-events

1 ответ

0

На стороне сервера вам нужно использовать SseEmitter для отправки событий. См. " События с сервером" с Spring (блог).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню