AJAX IRCX 客户端和服务器

Posted

技术标签:

【中文标题】AJAX IRCX 客户端和服务器【英文标题】:AJAX IRCX Client and Server 【发布时间】: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 秒之间的任何时间都显得迟缓。

感谢您的意见。

【问题讨论】:

【参考方案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/

【讨论】:

以上是关于AJAX IRCX 客户端和服务器的主要内容,如果未能解决你的问题,请参考以下文章

Js原生Ajax和Jquery的Ajax

AJAX学习笔记

ajax学习

Ajax

AJAX&Json

AJAX异步请求