comet么?? 我发过帖子你可以看下
ashx 有一个是否可以重用对象的属性。 这种解决方案不是坑,其实很常用的。
你的这个ashx后台是否使用了Session之类的东西,写Session时,Asp.net会阻塞请求,像你这种long-polling用的不当导致程序变成单线程
你如果不是“延迟5秒钟才轮询服务器”,比如说你是延迟5毫秒就轮询服务器一次(有些人就是会把5000误写为5),那这样的客户端在搞死服务器上就是“拼了”,就是恶意攻击服务器了。
不是循环,是CPU被这类线程任务“忙死”了,别的并发的重要事情根本干不了。 比如说有1000个客户端,当有消息的时候才通知客户端,那么任务操作是1。并且任务都是瞬间即时通讯到客户端的。 现在假设每个客户端每隔5秒钟轮询一次,那么就是说服务器端每隔5秒就至少要处理1000个无实际结果意义的巨大查询,每秒钟就要处理200个。而客户端还是要延迟5秒,用户体验很差(你一旦手工测试起来就会发现,延迟五秒的测试体验,看上去非常可笑)。 所以轮询只是不得已的办法,只是“玩儿玩儿”而已。根本不是及时网络通讯技术。
62,046
社区成员
669,048
社区内容
加载中
.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。
希望和大家一起共同营造一个活跃、友好的社区氛围。
试试用AI创作助手写篇文章吧