【问题标题】:AJAX IRCX Client and ServerAJAX IRCX 客户端和服务器
【发布时间】:2012-05-03 23:09:00
【问题描述】:

我目前正在开发一个基于 IRCX AJAX 聊天的系统,并且有一些关于服务器和客户端实现的问题;欢迎提出任何建议:

服务器

应该将其实现为 Web 服务还是 Windows 窗体应用程序?我有开发基于 Windows 窗体的服务器的经验,但是我想知道这是否会更好地实现为 Web 服务,如果可以,为什么?

客户

现在如何实现基于 Web 的客户端?实现基于 Web 的客户端的首选方法是什么?

到目前为止我的解决方案是

  • 带有 AJAX 更新面板的 ASP.NET Web 表单(这似乎是最可行的)
  • 使用 jQuery 连接到带有 JavaScript 超时的 Web 服务

轮询

应该多久轮询一次服务器以获取新消息? 0.5 秒似乎有点过分,2 到 3 秒之间的任何时间都显得迟缓。

感谢您的意见。

【问题讨论】:

    标签: c# jquery asp.net ajax chat


    【解决方案1】:

    拥有一个连接池并在服务器和客户端之间维护一种代理,根据会话 ID 将数据发送到正确的客户端。这意味着您的聊天服务器可以免受数据包攻击,您不必处理攻击者可能劫持的 Web 套接字并按照他们的要求进行操作。

    【讨论】:

      【解决方案2】:

      我知道这个问题很老了,但现在有更好的方法。

      SignalR 专为这样的事情而设计(实时网络功能)

      SignalR 可用于向您的 ASP.NET 应用程序添加任何类型的“实时”Web 功能。虽然聊天经常被用作示例,但您可以做更多的事情。任何时候用户刷新网页以查看新数据,或页面实现 Ajax 长轮询以检索新数据,都可以使用 SignalR。

      这是一个基本聊天应用程序HERE的教程。

      欲了解更多信息,请访问SignalR website

      【讨论】:

      • 感谢您的回答。我已经使用 C# ASP.NET MVC/AJAX 和长轮询实现了这一点。我还查看了使用 SignalR 的 JABBR,这是一个非常简洁的客户端。
      【解决方案3】:

      我相信使用 ASP.NET(套接字和更新面板)似乎是最好的方法。在这种情况下使用 jQuery 现在似乎有点无效,因为它不会与实时通信所需的聊天服务器保持持久状态。

      我发现另一种方法是使用 Web Sockets 和 Backbone.JS 来处理从服务器返回的数据。

      http://blog.fogcreek.com/the-trello-tech-stack/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多