ASP.NET Core 2.2 WebAPI: как заставить работать PushStreamContent - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь реализовать простой механизм push-уведомлений для веб-страницы.Поэтому я создал контроллер WebAPI с помощью метода, подобного этому:

[HttpGet]
public HttpResponseMessage Subscribe()
{            
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    response.Content = new PushStreamContent(
        (stream, headers, context) => OnStreamAvailable(stream, headers, context),
        "text/event-stream"
    );

    return response;
}

Но когда я пытаюсь вызвать его из кода клиента:

function listen() {
    if (!!window.EventSource) {
        const server = new EventSource('http://localhost:5000/api/Notifications/');

        server.addEventListener('message', function (e) {
            const json = JSON.parse(e.data);
            console.log('message', json);
        });

        server.addEventListener('open', function (e) {
            console.log('open');
        });

        server.addEventListener('error', function (e) {
            if (e.readyState === EventSource.CLOSED) {
                console.log('error');
            }
        });
    }
}

Chrome отвечает мне: EventSource's response has a MIME type ("application/json") that is not "text/event-stream". Aborting the connection.

Я должен добавить, что код, который я пишу, основан на этом руководстве (в котором используется MVC5).

Мой вопрос: как я могу сделатьSubscribe метод работы?Заранее спасибо.

...