Я пытаюсь SSE просто посмотреть, как они работают, но я не могу понять, почему этот код не работает. Я получаю ошибку клиента. В моем asp контроллере:
public class Example {
public Example() {
X = "12";
Y = 5;
}
public string X { get; set; }
public int Y { get; set; }
}
public IActionResult Index() {
return View();
}
public async Task Messaggio() {
Response.Headers.Add("Content-Type", "text/event-stream");
var msg = System.Text.Json.JsonSerializer.Serialize(new Example());
var bytes = Encoding.ASCII.GetBytes(msg);
await Response.Body.WriteAsync(bytes, 0, bytes.Length);
await Response.Body.FlushAsync();
Response.Body.Close();
}
Сгенерировано на стороне клиента html:
<html><head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
</head>
<body>
ciaoooo
<div id="Messaggio"></div>
<script>
source = new EventSource('/Home/Messaggio');
source.onopen = function (ddd) {
console.log("aperta");
};
source.onerror = function (ddd) {
console.log("errore");
console.log(ddd.data);
source.close();
};
source.onmessage = function (ddd) {
$("#Messaggio").text(ddd.data);
console.log(ddd.data);
};
</script>
</body>
</html>
Вывод на консоль браузера:
aperta
errore
undefined
маршруты в порядке, потому что если я запрашиваю / home / messaggio, он работает, я получаю файл Json
Спасибо всем, кто может мне помочь.