javascript - 如果我想创建一个 AJAX 聊天,应该使用什么通信技术来保持可扩展性?

标签 javascript jquery ajax client-server push

不久前,我将 ASP.NET MVC 和 jQuery 放在一起进行 AJAX 聊天。 javascript 大约每 7 秒访问一次服务器以检查新消息。显然,随着聊天的增长和包括越来越多的用户,这对性能来说是可怕的。随着如此多的请求,网站流量呈指数级增长。用户可以整天离开计算机,甚至不在那里,但他们仍会每 7 秒进行一次点击。

有更好的方法吗?我听说过一种叫做“推”的东西,但我还没有真正理解它。我想我只需要指出正确的方向。

1.) 开发 AJAX 聊天并使其具有可扩展性的最佳方式是什么?

2.) 什么是推送,我如何使用 jQuery 实现推送?

最佳答案

1.) What is the best way to develop an AJAX chat and have it be scalable?

我同意@freakish 关于 IIS 的复杂性和潜在缺乏扩展性的观点。

不过,微软在作品中有一个相对较新的选项,叫做SignalR这可能成为 ASP.NET 的核心部分。此相关 SO 问题中的更多详细信息:

2.) What is push and how would I just that with jQuery?

在其他地方部分回答,但它是服务器和客户端之间的长期持久连接,这意味着服务器可以在有新数据可用时立即将数据“推送”到客户端。

jQuery 确实支持发出 AJAX 请求,但核心库不支持公开执行 HTTP 长轮询或 HTTP 流的方法。更多信息在此 SO answer to 'Long Polling/HTTP Streaming General Questions' .

关于javascript - 如果我想创建一个 AJAX 聊天,应该使用什么通信技术来保持可扩展性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799256/

相关文章:

javascript - Javascript 警报弹出窗口是否会扩展 PHP session ?

javascript - 在页面加载事件中更改现有 DOM 元素时避免闪烁

javascript - 如何使用 jquery change() 更新行状态并显示在相应的表中

javascript - 通过鼠标按下选择父级中的最后一个子级

javascript - 如何将附加参数传递给 jQuery 过滤器函数

javascript - 使用 ajax 编辑要点

javascript - 如何使用 angularjs (1.x) 动态设置 HTML 元素的 id 属性?

javascript - 在 Jquery 倒计时器中用当前日期时间替换硬编码日期时间

javascript - 从数据库中获取选择选项的列值

javascript - 无法获取<script>之间的内容?