我正在尝试使用服务器推送事件(Server-Sent Events),但是我无法在一个MVC项目(非WebAPI)中使其正常工作。我在网上没有找到任何好的示例。
以下是我尝试的服务器端代码(包括从各种帖子中失败的尝试):
以下是我尝试的服务器端代码(包括从各种帖子中失败的尝试):
Function GetRows() as ActionResult
Dim ret = New HttpResponseMessage
' ret.Content.w
' Return ret
Response.ContentType = "text/event-stream"
Response.Write("data: " & "aaaa")
Dim flag = False
If flag Then
For i = 0 To 100
Response.Write("data: " & i)
Next
End If
Response.Flush()
'Return Content("Abv")
'Return Content(("data: {0}\n\n" & DateTime.Now.ToString(), "text/event-stream")
End Function
以下是Javascript代码
var source = new EventSource("/Tool/GetRows");
source.onmessage = function (event) {
document.getElementById("messages").innerHTML += event.data + "<br>";
};
source.onerror = function (e) {
console.log(e);
};
由于某种原因,它总是进入onerror
中,但没有提供任何可能的错误类型信息。
我做错了什么?
顺便说一下,我认为这个操作实际上不应该返回任何东西,因为我的理解是它只应该逐个字符串地写入流字符串。