使用access数据库中的c#实时数据馈送

使用access数据库中的c#实时数据馈送,c#,asp.net,.net,real-time,C#,Asp.net,.net,Real Time,我目前正在建立一个网站(ASP.net c#),我们正在考虑为我们网站上的数据事件创建一个实时提要(类似于facebook)。我想知道你对如何最好地实施这一点的想法,因为我不确定我的理解是否正确 我们有这样的活动:新文章发表,用户上线 用户将登录到他们的会员区,然后应该可以看到实时提要 我目前的想法是每隔几秒钟(从用户浏览器)就会有一个查询,查找自上次请求日期以来的任何新事件。如果自dateX(上次请求日期)以来有新的请求,则显示该请求 我会把最后的请求日期和用户ID一起保存,这样当他们回来时,

我目前正在建立一个网站(ASP.net c#),我们正在考虑为我们网站上的数据事件创建一个实时提要(类似于facebook)。我想知道你对如何最好地实施这一点的想法,因为我不确定我的理解是否正确

我们有这样的活动:新文章发表,用户上线

用户将登录到他们的会员区,然后应该可以看到实时提要

我目前的想法是每隔几秒钟(从用户浏览器)就会有一个查询,查找自上次请求日期以来的任何新事件。如果自dateX(上次请求日期)以来有新的请求,则显示该请求

我会把最后的请求日期和用户ID一起保存,这样当他们回来时,我知道他们最后看到的是什么

这是最好的方法吗?还是我应该考虑一些推送方法?我需要它是跨浏览器友好和支持旧浏览器。。。因此,我所研究的HTML5方法实际上不是一个选项


谢谢你的建议

我建议您查看一些消息传递总线,比如freameworks或开源。它们位于(Microsoft消息队列)MSMQ之上,使使用它更舒适

您可以不每隔几秒钟轮询数据库,而只在数据库中写入更改时向所有订阅的客户端发送一条light wheight消息。然后,客户机只对他们感兴趣的更改做出反应。您还可以使queus Transaction,这样即使客户端处于脱机/注销状态,也不会丢失任何消息


(编辑以使文本再次可读…

您可以为此使用
AJAX
。ASP.NET具有更新面板等控件,可为您提供所需的功能。然后,您可以将更新面板设置为根据用户ID和刷新数据的最后日期重新加载内容

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

 <div id="UserLiveFeed">

    <asp:UpdatePanel ID="upLiveFeed" runat="server">
        <ContentTemplate>
             <asp:Label runat="server" Text="Last updated" id="lblLastUpated">
             <!-- Your content here -->
             <asp:Timer runat="server" id="tmrLiveFeed" Interval="3000" OnTick="tmrLiveFeed_Tick"></asp:Timer>
        </ContentTemplate>
    </asp:UpdatePanel>

</div>

另一种选择是使用ASP.NET库,该库提供实时功能。

您可能需要查看。这是一个.NET库,用于构建交互式web应用程序,就像您的场景一样


另一个选择是你在问题中提到的。每n秒进行一次ajax调用,以检查数据库并更新UI。但我认为信号机比这要好得多,因为它不依赖连续命中方式

这将很好地工作,谢谢-但看看signar选项,这意味着更少的数据库连接。担心它会杀死有这么多连接的服务器!谢谢-刚刚实现了signar库,它工作得很好。很难开始,但希望这将是最好的方式:)谢谢。
protected void tmrLiveFeed_Tick(object sender, EventArgs e)
{
   lblLastUpdated = DateTime.Now.ToString();
}