【问题标题】:How can we push message from Web Server to client(Browser)? [duplicate]我们如何将消息从 Web 服务器推送到客户端(浏览器)? [复制]
【发布时间】:2012-10-27 08:51:36
【问题描述】:

可能重复:
C#/ASP Based Reverse AJAX

要求:当新通知到达时,我们必须向客户端推送消息。几乎就像消息通知或广播一样。它可能适用于多个用户。

在 ASP.NET Web 应用程序中需要它。

有什么解决办法吗?

【问题讨论】:

    标签: c# javascript asp.net notifications broadcasting


    【解决方案1】:

    技术上最合适的解决方案就是:web-sockets。它们正是为此而设计的,这也是大多数具有实时要求的主要站点喜欢的工作方式。这确实是 st​​ackoverflow 上的实时更新的工作方式。这里的小故障是某些浏览器(好的,IE)不支持它们 - 所以如果更新很重要,你需要一个后备。

    下一个选项是长轮询和重复轮询。两者都有效。

    周围有一些工具支持所有可行的选项,并自动选择最合适的选项,抽象出交付机制。 SignalR 就是这样一个工具。

    如果这是一个不错的选择,我会说 web-sockets。如果需要,可以使用 web-sockets-plus-polling-fallback 或 SignalR 之类的东西。

    【讨论】:

      【解决方案2】:

      SignalR 呢。您可以查看 Scott Hanselman 关于SignalR 的视频。另外网上有很多样例。

      【讨论】:

      • 嗨弗洛林,欢迎来到 Stack Overflow!虽然该链接可能会有所帮助,但总的来说,答案应该完全回答问题并且是独立的。如果此链接断开,您的回答对未来的访问者将毫无用处。考虑在您的帖子中添加edit 以添加示例。这不仅会帮助提问者,而且会帮助其他人稍后寻求答案。祝你好运!
      【解决方案3】:

      一种方法是使用Ajax 来完成此功能.... 如果有新通知到达,请使用 Classic Ajax 获取响应...在每个时间间隔后调用 SetTimeOut 以不断调用此 ajax 函数...如果有任何新通知到达,您将在您的 ajax 响应中得到它....如果在那里,您可以使用此响应以任何您想要的方式向客户展示它...您可以在http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp 了解更多关于 Ajax 的信息

      【讨论】:

      • 很好的解决方案。它是连续轮询机制。在这种情况下,服务器会在某个时间点变得忙碌。如果它是按需的,那就没问题了。任何 cmets ?
      • 是的,你是对的,担心存在....但这也取决于您通过 ajax 获得多少响应以及没有用户...还有一种方法是延长超时间隔...
      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 2011-04-02
      • 2019-11-12
      • 1970-01-01
      相关资源
      最近更新 更多