Я пытаюсь реализовать простой механизм 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
метод работы?Заранее спасибо.