我正在开发一个Asp.Net Web应用程序(Web表单),我想在主页面的标题中添加一个通知列表,以显示从服务器到客户端的通知(如新的电子邮件通知)。
我找到了两种方法:
1-普通JQuery Ajax调用,使用Timer在每个特定时间段发送请求,以检查来自服务器的新通知。
2-在服务器和所有客户端之间建立连接,并让服务器端代码将内容推送到连接的客户端,例如使用 SignalR库。
第一个问题:这是最佳实践解决方案,为什么,考虑到低硬件和连接带宽,特别是对于服务器和所有客户端之间存在持久连接的第二种解决方案?
第二个问题: SignalR 是最好的库还是有更好的实时网络功能库?
答案 0 :(得分:1)
授权SinglarR保持持久连接,在吞吐量方面实际上节省了带宽; SignalR不会来回发送标头,因为每个轮询都会有请求和响应标头。此外,SignalR为具有不同支持的浏览器(例如支持长轮询的浏览器与不支持长轮询的浏览器)内置了后备,更不用说通知将近乎即时(而不是等待下一次轮询)
就最佳解决方案而言,我觉得这可能是有争议的,但SignalR是一个非常活跃的项目,有很多支持。您可能会发现重量稍轻的东西,但SignalR使其易于扩展且资源充足。