我正在构建适用于Android的推送通知系统。
我有一个ASP.NET Web应用程序,托管在商业托管服务提供商上。我有一个页面几乎总是在无限循环中等待事件发生。
一个主机(Android设备)加载此页面,并在持久连接上保持连接,直到该事件发生。当它发生时,它会为它服务,然后再等待它再次发生。
现在,我的问题是,此页面是否处于永久循环中,并且始终连接到客户端会影响其余Web应用程序的性能吗?
(我认为它不应该,因为服务器无论如何都会处理大量的客户端连接。我假设这是正确的吗?)
我应该在服务器上的其他应用程序池上部署它吗? 此外,是否有更好的方法使用持久连接进行推送通知?
提前致谢...
答案 0 :(得分:2)
根据您的描述,您将遇到问题。首先,让页面永远循环会导致超时错误(连接超时默认为120秒)。顺便说一句,这将导致应用程序池失败/关闭,具体取决于它发生的速度(我不小心这样做了,相信我并不好)。
如果您不必拥有100%的实时通知,我会使用轮询设置(让它们每隔几分钟点击一次页面)。如果您必须拥有100%的实时通知,并且您的目标是2.2,请使用Cloud to Device Messaging。否则,您最好的选择是创建服务器应用程序而不是ASP.Net方法。