我希望能够使用MVC .NET中的SSE开发一个动态更新应用。我在网上搜索了很多,但是没有找到关于如何在MVC中实现SSE的示例或方法。我开发了一个比较糟糕的解决方案,其中一个视图调用一个控制器,该控制器再调用第二个视图,然后第二个视图将内容推送到第一个视图。希望有人能提供帮助。谢谢。
我希望能够使用MVC .NET中的SSE开发一个动态更新应用。我在网上搜索了很多,但是没有找到关于如何在MVC中实现SSE的示例或方法。我开发了一个比较糟糕的解决方案,其中一个视图调用一个控制器,该控制器再调用第二个视图,然后第二个视图将内容推送到第一个视图。希望有人能提供帮助。谢谢。
这里有一个关于如何在 mvc4 中使用 .net 实现 sse 的例子(同样适用于 MVC3
)。
控制器部分:
public ActionResult Index()
{
ViewBag.Message = "SSE WITH ASP.NET MVC";
return View();
}
public ActionResult Message()
{
var result = string.Empty;
var sb = new StringBuilder();
sb.AppendFormat("data: {0}\n\n", DateTime.Now.ToString());
return Content(sb.ToString(), "text/event-stream");
}
视图部分:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
function contentLoaded() {
var source = new EventSource('home/message');
//var ul = $("#messages");
source.onmessage = function (e) {
var li = document.createElement("li");
var returnedItem = e.data;
li.textContent = returnedItem;
$("#messages").append(li);
}
};
window.addEventListener("DOMContentLoaded", contentLoaded, false);
</script>
<h2><%: ViewBag.Message%></h2>
<p>
SSE WITH ASP.NET MVC
</p>
<ul id="messages">
</ul>
输出: