4

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

服务器

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

客户

当今如何实现基于 Web 的客户端以及实现基于 Web 的客户端的首选方法是什么?

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

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

轮询

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

感谢您的输入。

4

3 回答 3

6

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

于 2012-05-07T09:36:46.087 回答
4

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

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

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

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

如需更多信息,请访问SignalR 网站

于 2013-05-24T10:07:42.143 回答
1

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

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

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

于 2012-05-04T07:49:06.547 回答