C# 服务器发送的事件如何与ASP.NET MVC配合使用?
我有一个ASP.NET MVC应用程序,我正在使用服务器发送的事件。该应用程序运行良好,但我有一些关于它如何工作的问题。 下面是控制器代码C# 服务器发送的事件如何与ASP.NET MVC配合使用?,c#,asp.net-mvc,html,C#,Asp.net Mvc,Html,我有一个ASP.NET MVC应用程序,我正在使用服务器发送的事件。该应用程序运行良好,但我有一些关于它如何工作的问题。 下面是控制器代码 public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { ViewBag.Message = "SSE WITH ASP.NET MVC";
public class HomeController : Controller
{
//
// GET: /Home/
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>
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>
函数contentLoaded(){
var source=新事件源(“主页/消息”);
//var ul=$(“#消息”);
source.onmessage=函数(e){
var li=document.createElement(“li”);
var returnedItem=e.data;
li.textContent=returnedItem;
$(“#消息”)。附加(li);
}
};
addEventListener(“DOMContentLoaded”,contentLoaded,false);
@查看包。留言
带ASP.NET MVC的SSE
我的问题是:
1.时间仅每3秒更新一次。为什么会这样?
2.如何确定调用控制器操作的频率
时间仅每3秒更新一次。为什么会这样
因为您的控制器
正在返回包含单个数据的操作结果
,然后关闭连接,所以请先关闭浏览器,然后重新打开它
如何确定调用控制器操作的频率
用同样的方法确定调用任何其他方法的频率,使用循环和
SSE是服务器发送的事件,您可以从服务器端管理所有这些内容,只有明确保持连接打开,它才能正常工作,否则您最好从客户端执行AJAX轮询。谢谢您的回答。现在我对这种联系有了更好的了解。在这种情况下,当使用SSE时,典型的控制器动作会是什么样子?你有什么例子吗?或者你能给我一个链接来解释它。OP的代码似乎是基于这篇博客文章,它完全忽略了服务器发送事件的要点。