.net – 从服务器端应用程序向客户端发送消息?

我有一个基于javascript的客户端,目前正在为新内容轮询.NET Web服务.虽然轮询工作……我对这种方法不满意,因为我正在使用系统资源并在没有任何接收更改时创建开销.

我的问题是如何通知我的客户有新的内容供它显示?我愿意接受任何其他技术来实现这个解决方案.

最佳答案
首先,投票是可行的方法.您可以使用Flash或Silverlight或Comet – http://en.wikipedia.org/wiki/Comet_(programming)来执行此操作,它可以保持打开tcp连接以进行通知.网页本身无法打开套接字,因此无法直接通知Web客户端.

[编辑]
但想想看,有多少客户端可以同时为一台服务器提供tcp连接?对于更大的系统,由于有65k端口可用,因此可用的插槽很快就会耗尽.
服务器可以处理多少并发连接取决于您的硬件资源.如果你有足够的内存和CPU,你应该能够处理~100k甚至更多.但是,如果每个请求通过tcp / ip访问数据库或其他资源,则可能限制为每个可用ip的端口数(65k).您还应该推送请求针对单独的域,因为浏览器通常会限制每个域的两个并发连接,因此您不会干扰正常的页面加载.

将轮询与前端缓存服务器结合使用是一个很好的解决方案.您可以在服务器上使用逻辑来更新每个客户端的缓存,从而减少每个轮询的负载.您可以为在X分钟内登录/轮询的用户更新缓存,以进一步减少缓存更新.对我来说,实施拉动比拉动更容易,技术明智.

转载注明原文:.net – 从服务器端应用程序向客户端发送消息? - 代码日志