如何使用.NET在MVC3中实现Server Sent事件?

时间:2011-09-06 17:25:27

标签: asp.net-mvc-3 pushviewcontroller server-sent-events

我想在MVC .NET中使用SSE创建一个feed应用程序。我正在浏览网页,但我找不到在MVC中实现SSE的示例或方法。我开发了一个非常脏的解决方案,其中View调用一个调用第二个View的Controller,而这个第二个View将推送到第一个View。我希望有人可以提供帮助。感谢。

3 个答案:

答案 0 :(得分:1)

看看SignalR。设置和运行非常简单,ASP.NET中有很多例子可以帮助您入门。

答案 1 :(得分:1)

如果ASP.NET WebApi是一个选项,您可以签出我的库ServerSentEvents4Net。代码在Github上,而在Nuget上也可以使用。

答案 2 :(得分:0)

以下是使用中实施的示例(它也适用于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>

<强>输出:

enter image description here