【问题标题】:Long polling for real time messages/updates实时消息/更新的长轮询
【发布时间】:2012-03-31 06:05:34
【问题描述】:

在 .Net 应用程序中实现长轮询的好策略是什么。

这是否意味着使用基于 JS setInterval() 的方法来不断轮询服务器以获取可以在页面上呈现的更新。我一直认为这在可扩展性方面可能是一个挑战,因为它似乎会向 Web 服务器产生大量额外的请求。我已经读过这种类型的功能应该使用非阻塞Web服务器(单线程)NODE.js等来实现...... 由于只有一个线程/事件循环,因此请求似乎必须非常轻量级才能及时为多个请求提供服务。 Node.Js 可以触发 db 调用吗?

我看到一个在线约会网站,当您当前登录系统时,当有人访问您的个人资料时,您会收到淡入/淡出弹出窗口的通知。我印象深刻的是,这样的东西对于一个大容量的网站来说效果很好。

假设这种通知系统是使用长轮询实现的,是否合理?基于不断通过 JS 轮询?

我在 SO 网站上也看到了类似的幕后更新(消息/投票等)这是否也使用类似的策略?

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    SignalRpokein 是两个不错的选择。

    scott hanselman 的博客文章解释了如何使用 SignalR http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

    【讨论】:

    • pokein 似乎已经死了。 SignalR 的工作就像一个魅力
    【解决方案2】:

    实时 Web 应用程序已经存在很长时间了: Polling 的历史从setInterval TechniqueHTML5 WebSockets

    在这里您可以找到使用 JavaScript 的简单长轮询示例。

    http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

    【讨论】:

    • 谢谢!。这篇文章很有趣
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多